<?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-4439341071318331268</id><updated>2011-11-27T16:38:52.372-08:00</updated><title type='text'>WebServices in c# ASP.Net</title><subtitle type='html'>Web Services in c# csharp asp.net vb.net soap, disco, http</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://csharpwebservices.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>sudhakar kanniyan</name><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>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-8595463974237257966</id><published>2011-05-09T09:38:00.002-07:00</published><updated>2011-05-09T09:39:10.934-07:00</updated><title type='text'>URL Rewrite</title><content type='html'>IIS URL Rewrite 2.0 enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find. By using rule templates, rewrite maps, .NET providers, and other functionality integrated into IIS Manager, Web administrators can easily set up rules to define URL rewriting behavior based on HTTP headers, HTTP response or request headers, IIS server variables, and even complex programmatic rules. In addition, Web administrators can perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules.&lt;br /&gt;&lt;br /&gt;Define powerful rules to transform complex URLs into simple and consistent Web addresses&lt;br /&gt;URL Rewrite allows Web administrators to easily build powerful rules using rewrite providers written in .NET, regular expression pattern matching, and wildcard mapping to examine information in both URLs and other HTTP headers and IIS server variables. Rules can be written to generate URLs that can be easier for users to remember, simple for search engines to index, and allow URLs to follow a consistent and canonical host name format. URL Rewrite further simplifies the rule creation process with support for content rewriting, rule templates, rewrite maps, rule validation, and import of existing mod_rewrite rules. &lt;br /&gt;&lt;br /&gt;Easily replace Web application URLs to produce user and search engine friendly results&lt;br /&gt;URL Rewrite permits Web administrators to easily replace the URLs generated by a Web application in the response HTML with a more user friendly and search engine friendly equivalent. Links can be modified in the HTML markup generated by a Web application behind a reverse proxy. URL Rewrite makes things easier for outbound response content and headers rewriting with outbound rewrite rules that work with HTTP request and response headers and with IIS server variables.&lt;br /&gt;&lt;br /&gt;Seamless integration with existing IIS features that improve management, performance, and troubleshooting&lt;br /&gt;URL Rewrite is tightly integrated with IIS Manager for better management. In addition, URL Rewrite supports both user-mode and kernel-mode caching for faster performance. URL Rewrite also supports Failed Request Tracing for enhanced troubleshooting of application logic execution.&lt;br /&gt;&lt;br /&gt;Features&lt;br /&gt;Rules-based URL rewriting engine &lt;br /&gt;Rules-based response rewriting engine &lt;br /&gt;Support for custom .NET rewrite providers &lt;br /&gt;Regular expression pattern matching &lt;br /&gt;Wildcard pattern matching &lt;br /&gt;Global and distributed rewrite rules &lt;br /&gt;Rewriting within the content of specific HTML tags &lt;br /&gt;Pre-conditions for outbound rules &lt;br /&gt;Access to server variables and HTTP headers &lt;br /&gt;Rewriting of server variables and HTTP request headers &lt;br /&gt;Rewriting of HTTP response headers &lt;br /&gt;Allow list for server variables &lt;br /&gt;HtmlEncode function &lt;br /&gt;Built-in rule templates &lt;br /&gt;Reverse proxy rule template &lt;br /&gt;Rule templates for Search Engine Optimization &lt;br /&gt;Various rule actions including redirect and request abort &lt;br /&gt;Tracking capture groups across rule conditions &lt;br /&gt;Logging of rewritten URLs &lt;br /&gt;Updated user interface in IIS Manager &lt;br /&gt;Integrated user interface for managing rewrite rules and rewrite maps &lt;br /&gt;Integrated user interface for importing of Apache mod_rewrite rules &lt;br /&gt;Integrated user interface for testing regular expression and wildcard patterns &lt;br /&gt;Support for IIS kernel-mode and user-mode output caching &lt;br /&gt;Lowercase conversion function &lt;br /&gt;Rewrite maps to generate the substitution URL during rewriting &lt;br /&gt;Failed Request Tracing support&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-8595463974237257966?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/8595463974237257966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/8595463974237257966'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2011/05/url-rewrite.html' title='URL Rewrite'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-7651814775613815161</id><published>2011-05-09T09:38:00.001-07:00</published><updated>2011-05-09T09:38:28.847-07:00</updated><title type='text'>URL Rewriting -Introduction</title><content type='html'>Take a moment to look at some of the URLs on your website. Do you find URLs like http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&amp;type=summary? Or maybe you have a bunch of Web pages that were moved from one directory or website to another, resulting in broken links for visitors who have bookmarked the old URLs. In this article we'll look at using URL rewriting to shorten those ugly URLs to meaningful, memorable ones, by replacing http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&amp;type=summary with something like http://yoursite.com/people/sales/chuck.smith. We'll also see how URL rewriting can be used to create an intelligent 404 error.&lt;br /&gt;&lt;br /&gt;URL rewriting is the process of intercepting an incoming Web request and redirecting the request to a different resource. When performing URL rewriting, typically the URL being requested is checked and, based on its value, the request is redirected to a different URL. For example, in the case where a website restructuring caused all of the Web pages in the /people/ directory to be moved to a /info/employees/ directory, you would want to use URL rewriting to check if a Web request was intended for a file in the /people/ directory. If the request was for a file in the /people/ directory, you'd want to automatically redirect the request to the same file, but in the /info/employees/ directory instead.&lt;br /&gt;&lt;br /&gt;With classic ASP, the only way to utilize URL rewriting was to write an ISAPI filter or to buy a third-party product that offered URL rewriting capabilities. With Microsoft® ASP.NET, however, you can easily create your own URL rewriting software in a number of ways. In this article we'll examine the techniques available to ASP.NET developers for implementing URL rewriting, and then turn to some real-world uses of URL rewriting. Before we delve into the technological specifics of URL rewriting, let's first take a look at some everyday scenarios where URL rewriting can be employed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-7651814775613815161?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/7651814775613815161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/7651814775613815161'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2011/05/url-rewriting-introduction.html' title='URL Rewriting -Introduction'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-2246488139232014345</id><published>2011-04-20T17:04:00.000-07:00</published><updated>2011-04-20T17:08:01.118-07:00</updated><title type='text'>LINQ TO SQL Tutorial</title><content type='html'>&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/zy4Y34brSC8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-2246488139232014345?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/2246488139232014345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/2246488139232014345'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2011/04/linq-to-sql-tutorial.html' title='LINQ TO SQL Tutorial'/><author><name>sudhakar kanniyan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/zy4Y34brSC8/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-6654489012646839493</id><published>2009-11-15T07:12:00.000-08:00</published><updated>2009-11-15T07:17:07.082-08:00</updated><title type='text'>Windows Communication Foundation (WCF)</title><content type='html'>Windows Communication Foundation (WCF) is an SDK for developing and deploying services on Windows. WCF provides a runtime environment for your services, enabling you to expose CLR types as services, and to consume other services as CLR types. Although in theory you could build services without WCF, in practice building services is significantly easier with WCF. WCF is Microsoft’s implementation of a set of industry standards defining service interactions, type conversion, marshaling, and various protocols’ management. Because of that, WCF provides interoperability between services. WCF provides developers with the essential off-the-shelf plumbing required by almost any application, and as such, it greatly increases productivity. The first release of WCF provides many useful facilities for developing services, such as hosting, service instance management, asynchronous calls, reliability, transaction management, disconnected queued calls, and security. WCF also has an elegant extensibility model that you can use to enrich the basic offering. In fact, WCF itself is written using this extensibility model. The rest of the chapters in this book are dedicated to those aspects and features. Most all of the WCF functionality is included in a single assembly called System.ServiceModel.dll in the System.ServiceModel namespace. &lt;br /&gt;&lt;br /&gt;WCF is part of .NET 3.0 and requires .NET 2.0, so it can only run on operation systems that support it. Presently this list consists of Windows Vista (client and server), Windows XP SP2, and Windows Server 2003 SP1 or their later versions.&lt;br /&gt;&lt;br /&gt;Services' Execution Boundaries &lt;br /&gt;With WCF, the client never interacts with the service directly, even when dealing with a local, in-memory service. Instead, the client always uses a proxy to forward the call to the service. The proxy exposes the same operations as the service, plus some proxy-management methods. &lt;br /&gt;&lt;br /&gt;WCF allows the client to communicate with the service across all execution boundaries. On the same machine  the client can consume services in the same app domain, across app domains in the same process, or across processes. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Addresses &lt;br /&gt;In WCF, every service is associated with a unique address. The address provides two important elements: the location of the service and the transport protocol or transport schema used to communicate with the service. The location portion of the address indicates the name of the target machine, site, or network; a communication port, pipe, or queue; and an optional specific path or URI. A URI is a Universal Resource Identifier, and can be any unique string, such as the service name or a GUID. &lt;br /&gt;&lt;br /&gt;WCF 1.0 supports the following transport schemas: &lt;br /&gt;&lt;br /&gt;HTTP &lt;br /&gt;TCP &lt;br /&gt;Peer network &lt;br /&gt;IPC (Inter-Process Communication over named pipes) &lt;br /&gt;MSMQ &lt;br /&gt;Addresses always have the following format: &lt;br /&gt;&lt;br /&gt;[base address]/[optional URI] &lt;br /&gt;The base address is always in this format: &lt;br /&gt;&lt;br /&gt;[transport]://[machine or domain][:optional port] &lt;br /&gt;Here are a few sample addresses: &lt;br /&gt;&lt;br /&gt;http://localhost:8001 &lt;br /&gt;http://localhost:8001/MyService &lt;br /&gt;net.tcp://localhost:8002/MyService &lt;br /&gt;net.pipe://localhost/MyPipe &lt;br /&gt;net.msmq://localhost/private/MyService &lt;br /&gt;net.msmq://localhost/MyService &lt;br /&gt;The way to read an address such as &lt;br /&gt;&lt;br /&gt;http://localhost:8001 &lt;br /&gt;is like this: "Using HTTP, go to the machine called localhost, where on port 8001 someone is waiting for my calls." &lt;br /&gt;&lt;br /&gt;If there is also a URI such as: &lt;br /&gt;&lt;br /&gt;http://localhost:8001/MyService &lt;br /&gt;then the address would read as follows: "Using HTTP, go to the machine called localhost, where on port 8001 someone called MyService is waiting for my calls." &lt;br /&gt;Contracts &lt;br /&gt;In WCF, all services expose contracts. The contract is a platform-neutral and standard way of describing what the service does. WCF defines four types of &lt;strong&gt;contracts. &lt;/strong&gt;&lt;br /&gt;Service contracts &lt;br /&gt;Describe which operations the client can perform on the service. Service contracts are the subject of the next chapter, but are used extensively in every chapter in this book. &lt;br /&gt;Data contracts &lt;br /&gt;Define which data types are passed to and from the service. WCF defines implicit contracts for built-in types such as int and string, but you can easily define explicit opt-in data contracts for custom types. Chapter 3 is dedicated to defining and using data contracts, and subsequent chapters make use of data contracts as required. &lt;br /&gt;Fault contracts &lt;br /&gt;Define which errors are raised by the service, and how the service handles and propagates errors to its clients. Chapter 6 is dedicated to defining and using fault contracts. &lt;br /&gt;Message contracts &lt;br /&gt;Allow the service to interact directly with messages. Message contracts can be typed or untyped, and are useful in interoperability cases and when there is an existing message format you have to comply with. As a WCF developer, you should use message contracts only rarely, so this book makes no use of message contracts. &lt;br /&gt;&lt;strong&gt;&lt;br /&gt;WCF Architecture &lt;/strong&gt;&lt;br /&gt;So far in this chapter, I’ve covered all that is required to set up and consume simple WCF services. However, as described in the rest of the book, WCF offers immensely valuable support for reliability, transactions, concurrency management, security, and instance activation, all of which rely on the WCF interception-based architecture. Having the client interact with a proxy means that WCF is always present between the service and the client, intercepting the call and performing pre-and post-call processing. The interception starts when the proxy serializes the call stack frame to a message and sends the message down a chain of channels. The channel is merely an interceptor, whose purpose is to perform a specific task. Each client-side channel does pre-call processing of the message. The exact structure and composition of the chain depends mostly on the binding. For example, one of the channels may be responsible for encoding the message (binary, text, or MTOM), another for passing security call context, another for propagating the client transaction, another for managing the reliable session, another for encrypting the message body (if so configured), and so on. The last channel on the client side is the transport channel, which sends the message over the configured transport to the host. &lt;br /&gt;&lt;br /&gt;On the host side, the message goes through a chain of channels as well, which perform host-side pre-call processing of the message. The first channel on the host side is the transport channel, which receives the message from the transport. Subsequent channels perform various tasks, such as decryption of the message body, decoding of the message, joining the propagated transaction, setting the security principal, managing the session, and activating the service instance. The last channel on the host side passes the message to the dispatcher. The dispatcher converts the message to a stack frame and calls the service instance.&lt;br /&gt;The service has no way of knowing it was not called by a local client. In fact, it was called by a local client—the dispatcher. The interception both on the client and the service side ensures that the client and the service get the runtime environment they require to operate properly. The service instance executes the call and returns control to the dispatcher, which then converts the returned values and error information (if any) to a return message. The process is now reversed: the dispatcher passes the message through the host-side channels to perform post-call processing, such as managing the transaction, deactivating the instance, encoding the reply, encrypting it, and so on. The returned message goes to the transport channel, which sends it to the client-side channels for client-side post-call processing, which consists of tasks such as decryption, decoding, committing or aborting the transaction, and so on. The last channel passes the message to the proxy. The proxy converts the returned message to a stack frame and returns control to the client. &lt;br /&gt;&lt;br /&gt;Most noteworthy is that almost all the points in the architecture provide hooks for extensibility—you can provide custom channels for proprietary interaction, custom behaviors for instance management, custom security behavior, and so on. In fact, the standard facilities that WCF offers are all implemented using the same extensibility model. You will see many examples and uses for extensibility throughout this book&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Host Architecture&lt;/strong&gt;&lt;br /&gt;It is also interesting to explore how the transition is made from a technology-neutral, service-oriented interaction to CLR interfaces and classes. The bridging is done via the host. Each .NET host process can have many app domains. Each app domain can have zero or more service host instances. However, each service host instance is dedicated to a particular service type. When you create a host instance, you are in effect registering that service host instance with all the endpoints for that type on the host machine that correspond to its base addresses. Each service host instance has zero or more contexts. The context is the innermost execution scope of the service instance. A context is associated with at most one service instance, meaning it could also be empty, without any service instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-6654489012646839493?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/6654489012646839493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/6654489012646839493'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/11/windows-communication-foundation-wcf.html' title='Windows Communication Foundation (WCF)'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-3836297612336939172</id><published>2009-06-01T07:00:00.000-07:00</published><updated>2009-06-01T07:21:06.578-07:00</updated><title type='text'>Calling Webservices from ASP.NET: Example Google Web Service</title><content type='html'>&lt;strong&gt;What are Web services?&lt;/strong&gt;&lt;br /&gt;Web services is a fairly new technology that has been around for the past few years. Web services is a conduit for providing application services between disparate applications using eXtended Markup Language (XML). The web services technology we feel is finally beginning to mature a bit.&lt;br /&gt;The idea of web services as a mechanism for bridging disparate systems - is not new. Web services is really just a slight twist of an old technology. It is basically Remote Procedure Calls (RPC) over HTTP.&lt;br /&gt;Initially it was proscribed as the panacea to solve all IT application integration problems. This has not been fully realized because of many issues - such as lack of development tools at the on-set to support the infrastructure, security concerns, complexity, network speed and object serialization/deserialization processing speed. Nevertheless, web services are proving to be a very useful tool when used sparin&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What's the big deal with Web Services?&lt;/strong&gt;&lt;br /&gt;The big deal with webservices is how it differentiates itself from prior standards such as DCOM, CORBA, Java Remote Method Invocation (RMI). In a nutshell - these standards were designed to perform a similar function to web services, but the problem with them is that interoperation between them was too complicated and too expensive. For example to integrate one system using DCOM with another using CORBA would require using a bridge.&lt;br /&gt;Web services is a more widely accepted univeral standard. Java has a web services tool kit, ASP.NET has one, and so do other languages and environments. It's probably one of the first times that all big players have come to an agreement on a standard.&lt;br /&gt;If Web services is so great and such an obvious solution - why didn't we do it 10 years ago?The reason is simple. We couldn't. There is always a trade-off between standardization, speed and simplicity. Web services are inherently slower than other standards because of the need to convert an XML blob of text into an object. 10 years ago we could not afford this speed crunch, and also the need of interoperation between Joe here and Jim 20 miles away was not feasable because of network issues. Web services then was simply an answer to a problem that was way down on the totem pole of our concerns.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Does web services completely replace DCOM, CORBA, or Java RMI?&lt;/strong&gt;&lt;br /&gt;NO. The reason is very simple. Each of the aforementioned standards - while difficult to integrate with other standards -- work well in the environments they were designed for and are highly optimized for those environments. E.g if all your apps are in DCOM - it makes sense to integrate them with DCOM, but if you need to collaborate with your neighbor next door and you don't know what he uses - go with an open-standard such as Web Services for that integration.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;What makes up a Web Service?&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;The current web services standard as defined by the W3C org is composed of 4 main parts.&lt;br /&gt;The service which is usually performed by a web server that listens for requests of the service. This is generally just a web like page or cgi script that gets posted to similar to the way other http web requests are done. Instead of returning HTML though it returns a formalized XML message in Simple Object Application Protocol (SOAP) format etc.&lt;br /&gt;The service description - specified in Web Services Description Language (WSDL) - this description defines the web methods (functions) that a service will accept - the inputs that go into these methods, and the format of the output that can be expected in return. It is the contract or message signature of the service. This is what you will need to generate a web service client proxy.&lt;/p&gt;&lt;p&gt; The .NET SDK comes with a utility WSDL.exe that will autogenerate a client proxy class in .vb or C# given a .wsdl file. &lt;/p&gt;&lt;p&gt;The web service registry This piece is basically a directory of web services. The current standard is Universal Description, Discovery, and Integration (UDDI). This is an optional piece because a web service need not be listed in a UDDI registry to be used. The registry is just a nice way of cataloging available services - similar to what Java Naming and Directory Service (JNDI) does for Java.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Finally there is the web service client proxy - which negotiates the communication between a web service and a client. It accepts the inputs and requests - passes it off to the web service - waits for the service to respond and then converts the response to something meaningful. This is known as serialization/deserialization - conversion from the web service XML response back to an object and conversion of a user request to XML format required by the service. &lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Google Web service&lt;/strong&gt;&lt;br /&gt;Incorporating a search engine seamlessly into ones site is a feature very commonly needed. The new Google Web Service (currently in beta) and the ample support in ASP.NET for web services - makes this a snap. In this article we detail how to call this particular service in ASP.NET.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Setting up&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Download the Google API from http://www.google.com/apis/ and then follow the instructions to acquire a search key.&lt;br /&gt;Get the &gt;NET SDK if you don't have it already and don't have VS.NET&lt;br /&gt;You can use the packaged Google api web service proxy or generate your own proxy class using the wsdl.exe util that comes packaged with ASP.NET SDK.&lt;br /&gt;Compile the proxy class using a command something like vbc /t:library /out:Google.dll Google.vb /r:System.web.dll /r:System.web.Services.dll /r:System.data.dll /r:system.dll /r:System.xml.dll Note that for this we renamed the generated proxy class file to Google.vb mostly for clarity.&lt;br /&gt;Next copy the generated Google.dll into the bin folder of your web app.&lt;br /&gt;Add an entry in Web.config to hold the google key you received -- in ours we put it in the appsettings section of web.config and called the key googlekey. Alternatively, you can hard-code the key in the search page.&lt;br /&gt;Write the search page - a sample of our code is shown in the next section&lt;br /&gt;&lt;br /&gt;for more information goto &lt;a href="http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=13"&gt;http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=13&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-3836297612336939172?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/3836297612336939172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/3836297612336939172'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/06/calling-webservices-from-aspnet-example.html' title='Calling Webservices from ASP.NET: Example Google Web Service'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-5258975826367852600</id><published>2009-05-21T14:35:00.000-07:00</published><updated>2009-05-21T14:50:16.021-07:00</updated><title type='text'>Top Ten FAQs for Web Services</title><content type='html'>&lt;strong&gt;1. What is a Web service?&lt;/strong&gt;&lt;br /&gt;Many people and companies have debated the exact definition of Web services. At a minimum, however, a Web service is any piece of software that makes itself available over the Internet and uses a standardized XML messaging system.&lt;br /&gt;&lt;br /&gt;XML is used to encode all communications to a Web service. For example, a client invokes a Web service by sending an XML message, then waits for a corresponding XML response. Because all communication is in XML, Web services are not tied to any one operating system or programming language--Java can talk with Perl; Windows applications can talk with Unix applications.&lt;br /&gt;&lt;br /&gt;Beyond this basic definition, a Web service may also have two additional (and desirable) properties:&lt;br /&gt;&lt;br /&gt;First, a Web service can have a public interface, defined in a common XML grammar. The interface describes all the methods available to clients and specifies the signature for each method. Currently, interface definition is accomplished via the Web Service Description Language (WSDL). (See FAQ number 7.)&lt;br /&gt;&lt;br /&gt;Second, if you create a Web service, there should be some relatively simple mechanism for you to publish this fact. Likewise, there should be some simple mechanism for interested parties to locate the service and locate its public interface. The most prominent directory of Web services is currently available via UDDI, or Universal Description, Discovery, and Integration. (See FAQ number 8.)&lt;br /&gt;&lt;br /&gt;Web services currently run a wide gamut from news syndication and stock-market data to weather reports and package-tracking systems. For a quick look at the range of Web services currently available, check out the XMethods directory of Web services.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. What is new about Web services?&lt;/strong&gt;&lt;br /&gt;People have been using Remote Procedure Calls (RPC) for some time now, and they long ago discovered how to send such calls over HTTP.&lt;br /&gt;&lt;br /&gt;So, what is really new about Web services? The answer is XML.&lt;br /&gt;&lt;br /&gt;XML lies at the core of Web services, and provides a common language for describing Remote Procedure Calls, Web services, and Web service directories.&lt;br /&gt;&lt;br /&gt;Prior to XML, one could share data among different applications, but XML makes this so much easier to do. In the same vein, one can share services and code without Web services, but XML makes it easier to do these as well.&lt;br /&gt;&lt;br /&gt;By standardizing on XML, different applications can more easily talk to one another, and this makes software a whole lot more interesting.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. I keep reading about Web services, but I have never actually seen one. Can you show me a real Web service in action?&lt;/strong&gt;&lt;br /&gt;If you want a more intuitive feel for Web services, try out the IBM Web Services Browser, available on the IBM Alphaworks site. The browser provides a series of Web services demonstrations. Behind the scenes, it ties together SOAP, WSDL, and UDDI to provide a simple plug-and-play interface for finding and invoking Web services. For example, you can find a stock-quote service, a traffic-report service, and a weather service. Each service is independent, and you can stack services like building blocks. You can, therefore, create a single page that displays multiple services--where the end result looks like a stripped-down version of my.yahoo or my.excite.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. What is the Web service protocol stack?&lt;/strong&gt;&lt;br /&gt;The Web service protocol stack is an evolving set of protocols used to define, discover, and implement Web services. The core protocol stack consists of four layers:&lt;br /&gt;&lt;br /&gt;Service Transport: This layer is responsible for transporting messages between applications. Currently, this includes HTTP, SMTP, FTP, and newer protocols, such as Blocks Extensible Exchange Protocol (BEEP).&lt;br /&gt;&lt;br /&gt;XML Messaging: This layer is responsible for encoding messages in a common XML format so that messages can be understood at either end. Currently, this includes XML-RPC and SOAP.&lt;br /&gt;&lt;br /&gt;Service Description: This layer is responsible for describing the public interface to a specific Web service. Currently, service description is handled via the WSDL. &lt;br /&gt;&lt;br /&gt;Service Discovery: This layer is responsible for centralizing services into a common registry, and providing easy publish/find functionality. Currently, service discovery is handled via the UDDI.&lt;br /&gt;&lt;br /&gt;Beyond the essentials of XML-RPC, SOAP, WSDL, and UDDI, the Web service protocol stack includes a whole zoo of newer, evolving protocols. These include WSFL (Web Services Flow Language), SOAP-DSIG (SOAP Security Extensions: Digital Signature), and USML (UDDI Search Markup Language .&lt;br /&gt;&lt;br /&gt;Fortunately, you do not need to understand the full protocol stack to get started with Web services. Assuming you already know the basics of HTTP, it is best to start at the XML Messaging layer and work your way up.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. What is XML-RPC?&lt;/strong&gt;&lt;br /&gt;XML-RPC is a protocol that uses XML messages to perform Remote Procedure Calls. Requests are encoded in XML and sent via HTTP POST; XML responses are embedded in the body of the HTTP response.&lt;br /&gt;&lt;br /&gt;More succinctly, XML-RPC = HTTP + XML + Remote Procedure Calls.&lt;br /&gt;&lt;br /&gt;Because XML-RPC is platform independent, diverse applications can communicate with one another. For example, a Java client can speak XML-RPC to a Perl server.&lt;br /&gt;&lt;br /&gt;To get a quick sense of XML-RPC, here is a sample XML-RPC request to a weather service (with the HTTP Headers omitted):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;br /&gt;&lt;methodCall&gt;&lt;br /&gt;   &lt;methodName&gt;weather.getWeather&lt;/methodName&gt;&lt;br /&gt;   &lt;params&gt;&lt;br /&gt;      &lt;param&gt;&lt;value&gt;10016&lt;/value&gt;&lt;/param&gt;&lt;br /&gt;   &lt;/params&gt;&lt;br /&gt;&lt;/methodCall&gt;The request consists of a simple &lt;methodCall&gt; element, which specifies the method name (getWeather) and any method parameters (zip code).&lt;br /&gt;&lt;br /&gt;Here is a sample XML-RPC response from the weather service:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;br /&gt;&lt;methodResponse&gt;&lt;br /&gt;   &lt;params&gt;&lt;br /&gt;      &lt;param&gt;&lt;br /&gt;         &lt;value&gt;&lt;int&gt;65&lt;/int&gt;&lt;/value&gt;&lt;br /&gt;      &lt;/param&gt;&lt;br /&gt;   &lt;/params&gt;&lt;br /&gt;&lt;/methodResponse&gt;The response consists of a single &lt;methodReponse&gt; element, which specifies the return value (the current temperature). In this case, the return value is specified as an integer. &lt;br /&gt;&lt;br /&gt;In many ways, XML-RPC is much simpler than SOAP, and therefore represents the easiest way to get started with Web services.&lt;br /&gt;&lt;br /&gt;The official XML-RPC specification is available at XML-RPC.com. Dozens of XML-RPC implementations are available in Perl, Python, Java, and Ruby. See the XML-RPC home page for a complete list of implementations.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. What is SOAP?&lt;/strong&gt;&lt;br /&gt;SOAP is an XML-based protocol for exchanging information between computers. Although SOAP can be used in a variety of messaging systems and can be delivered via a variety of transport protocols, the main focus of SOAP is Remote Procedure Calls (RPC) transported via HTTP. Like XML-RPC, SOAP is platform independent, and therefore enables diverse applications to communicate with one another.&lt;br /&gt;&lt;br /&gt;To get a quick sense of SOAP, here is a sample SOAP request to a weather service (with the HTTP Headers omitted):&lt;br /&gt;&lt;br /&gt;The request is slightly more complicated than XML-RPC and makes use of both XML namespaces and XML Schemas. Much like XML-RPC, however, the body of the request specifies both a method name (getWeather), and a list of parameters (zipcode).&lt;br /&gt;&lt;br /&gt;Here is a sample SOAP response from the weather service:&lt;br /&gt;&lt;br /&gt;The response indicates a single integer return value (the current temperature). &lt;br /&gt;&lt;br /&gt;The World Wide Web Consortium (W3C) is in the process of creating a SOAP standard. The latest working draft is designated as SOAP 1.2, and the specification is now broken into two parts. Part 1 describes the SOAP messaging framework and envelope specification. Part 2 describes the SOAP encoding rules, the SOAP-RPC convention, and HTTP binding details.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. What is WSDL?&lt;/strong&gt;&lt;br /&gt;The Web Services Description Language (WSDL) currently represents the service description layer within the Web service protocol stack.&lt;br /&gt;&lt;br /&gt;In a nutshell, WSDL is an XML grammar for specifying a public interface for a Web service. This public interface can include the following: &lt;br /&gt;&lt;br /&gt;Information on all publicly available functions. &lt;br /&gt;Data type information for all XML messages. &lt;br /&gt;Binding information about the specific transport protocol to be used. &lt;br /&gt;Address information for locating the specified service. &lt;br /&gt;&lt;br /&gt;WSDL is not necessarily tied to a specific XML messaging system, but it does include built-in extensions for describing SOAP services.&lt;br /&gt;&lt;br /&gt;Below is a sample WSDL file. This file describes the public interface for the weather service used in the SOAP example above. Obviously, there are many details to understanding the example. For now, just consider two points. &lt;br /&gt;&lt;br /&gt;First, the &lt;message&gt; elements specify the individual XML messages that are transferred between computers. In this case, we have a getWeatherRequest and a getWeatherResponse. Second, the &lt;service&gt; element specifies that the service is available via SOAP and is available at a specific URL. &lt;br /&gt; &lt;br /&gt;Using WSDL, a client can locate a Web service, and invoke any of the publicly available functions. With WSDL-aware tools, this process can be entirely automated, enabling applications to easily integrate new services with little or no manual code. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. What is UDDI?&lt;/strong&gt;UDDI (Universal Description, Discovery, and Integration) currently represents the discovery layer within the Web services protocol stack.&lt;br /&gt;&lt;br /&gt;UDDI was originally created by Microsoft, IBM, and Ariba, and represents a technical specification for publishing and finding businesses and Web services.&lt;br /&gt;&lt;br /&gt;At its core, UDDI consists of two parts. &lt;br /&gt;&lt;br /&gt;First, UDDI is a technical specification for building a distributed directory of businesses and Web services. Data is stored within a specific XML format, and the UDDI specification includes API details for searching existing data and publishing new data.&lt;br /&gt;&lt;br /&gt;Second, the UDDI Business Registry is a fully operational implementation of the UDDI specification. Launched in May 2001 by Microsoft and IBM, the UDDI registry now enables anyone to search existing UDDI data. It also enables any company to register themselves and their services.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The data captured within UDDI is divided into three main categories:&lt;br /&gt;&lt;br /&gt;White Pages: This includes general information about a specific company. For example, business name, business description, and address.&lt;br /&gt;&lt;br /&gt;Yellow Pages: This includes general classification data for either the company or the service offered. For example, this data may include industry, product, or geographic codes based on standard taxonomies.&lt;br /&gt;&lt;br /&gt;Green Pages: This includes technical information about a Web service. Generally, this includes a pointer to an external specification, and an address for invoking the Web service.&lt;br /&gt;&lt;br /&gt;You can view the Microsoft UDDI site, or the IBM UDDI site. The complete UDDI specification is available at uddi.org.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;9. How do I get started with Web Services?&lt;/strong&gt;&lt;br /&gt;The easiest way to get started with Web services is to learn XML-RPC. Check out the XML-RPC specification or read my book, Web Services Essentials. O'Reilly has also recently released a book on Programming Web Services with XML-RPC by Simon St.Laurent, Joe Johnston, and Edd Dumbill.&lt;br /&gt;&lt;br /&gt;Once you have learned the basics of XML-RPC, move onto SOAP, WSDL, and UDDI. These topics are also covered in Web Services Essentials. For a comprehensive treatment of SOAP, check out O'Reilly's Programming Web Services with SOAP, by Doug Tidwell, James Snell, and Pavel Kulchenko.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. Does the W3C support any Web service standards?&lt;/strong&gt;&lt;br /&gt;The World Wide Web Consortium (W3C) is actively pursuing standardization of Web service protocols. In September 2000, the W3C established an XML Protocol Activity. The goal of the group is to establish a formal standard for SOAP. A draft version of SOAP 1.2 is currently under review, and progressing through the official W3C recommendation process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-5258975826367852600?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/5258975826367852600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/5258975826367852600'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/05/top-ten-faqs-for-web-services.html' title='Top Ten FAQs for Web Services'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-1083890147789006770</id><published>2009-05-10T20:22:00.000-07:00</published><updated>2009-05-10T20:23:34.300-07:00</updated><title type='text'>Amazon Simple Storage Service</title><content type='html'>Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.&lt;br /&gt;&lt;br /&gt;Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers.&lt;br /&gt;Amazon S3 is intentionally built with a minimal feature set.&lt;br /&gt;&lt;br /&gt;Write, read, and delete objects containing from 1 byte to 5 gigabytes of data each. The number of objects you can store is unlimited. &lt;br /&gt;Each object is stored in a bucket and retrieved via a unique, developer-assigned key. &lt;br /&gt;&lt;br /&gt;A bucket can be located in the United States or in Europe. All objects within the bucket will be stored in the bucket’s location, but the objects can be accessed from anywhere. &lt;br /&gt;Authentication mechanisms are provided to ensure that data is kept secure from unauthorized access. Objects can be made private or public, and rights can be granted to specific users. &lt;br /&gt;Uses standards-based REST and SOAP interfaces designed to work with any Internet-development toolkit. &lt;br /&gt;Built to be flexible so that protocol or functional layers can easily be added. Default download protocol is HTTP. A BitTorrent™ protocol interface is provided to lower costs for high-scale distribution. Additional interfaces will be added in the future. &lt;br /&gt;Reliability backed with the Amazon S3 Service Level Agreement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-1083890147789006770?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/1083890147789006770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/1083890147789006770'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/05/amazon-simple-storage-service.html' title='Amazon Simple Storage Service'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-352920053137607997</id><published>2009-05-10T18:18:00.001-07:00</published><updated>2009-05-10T18:22:30.520-07:00</updated><title type='text'>Basic of Web Service &amp; Web services architecture</title><content type='html'>Web services architecture&lt;br&gt; &lt;a href="http://4.bp.blogspot.com/_Re4LpHxqB1E/Sgd9dyhj-wI/AAAAAAAAEvw/mAAP-Jq3TWg/s1600-h/Web+services+architecture.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 218px;" src="http://4.bp.blogspot.com/_Re4LpHxqB1E/Sgd9dyhj-wI/AAAAAAAAEvw/mAAP-Jq3TWg/s320/Web+services+architecture.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5334370234375863042" /&gt;&lt;/a&gt;&lt;br /&gt;A Web service (also Web Service) is defined by the W3C as "a software system designed to support interoperable machine-to-machine interaction over a network".[1] Web services are frequently just Internet application programming interfaces (API) that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Other approaches with nearly the same functionality as web services are Object Management Group's (OMG) Common Object Request Broker Architecture (CORBA), Microsoft's Distributed Component Object Model (DCOM) or SUN's Java/Remote Method Invocation (RMI).&lt;br /&gt;&lt;br /&gt;The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients and servers that communicate over the HTTP protocol used on the Web. Such services tend to fall into one of two camps: Big Web Services and RESTful Web Services.&lt;br /&gt;&lt;br /&gt;"Big Web Services" use Extensible Markup Language (XML) messages that follow the Simple Object Access Protocol (SOAP) standard and have been popular with traditional enterprise. In such systems, there is often a machine-readable description of the operations offered by the service written in the Web Services Description Language (WSDL). The latter is not a requirement of a SOAP endpoint, but it is a prerequisite for automated client-side code generation in many Java and .NET SOAP frameworks (frameworks such as Spring, Apache Axis2 and Apache CXF being notable exceptions). Some industry organizations, such as the WS-I, mandate both SOAP and WSDL in their definition of a Web service.&lt;br /&gt;&lt;br /&gt;More recently, REpresentational State Transfer (RESTful) Web services have been regaining popularity, particularly with Internet companies. These also meet the W3C definition, and are often better integrated with Hypertext Transfer Protocol (HTTP) than SOAP-based services. They do not require XML messages or WSDL service-API definitions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-352920053137607997?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/352920053137607997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/352920053137607997'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/05/basic-of-web-service.html' title='Basic of Web Service &amp; Web services architecture'/><author><name>sudhakar kanniyan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Re4LpHxqB1E/Sgd9dyhj-wI/AAAAAAAAEvw/mAAP-Jq3TWg/s72-c/Web+services+architecture.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-4337448527521311185</id><published>2009-05-10T18:15:00.000-07:00</published><updated>2009-05-10T18:17:15.718-07:00</updated><title type='text'>List of web service protocols</title><content type='html'>The following is a list of Web service protocols.&lt;br /&gt;&lt;br /&gt;BEEP - Blocks Extensible Exchange Protocol &lt;br /&gt;E-Business XML &lt;br /&gt;Hessian &lt;br /&gt;JSON-RPC &lt;br /&gt;REST (Representational State Transfer) &lt;br /&gt;SOAP - outgrowth of XML-RPC, originally an acronym for Simple Object Access Protocol &lt;br /&gt;Universal Description, Discovery, and Integration (UDDI) &lt;br /&gt;Web Services Description Language (WSDL) &lt;br /&gt;WSFL - Web Services Flow Language (superseded by BPEL) &lt;br /&gt;WSCL - Web Services Conversation Language &lt;br /&gt;XINS Standard Calling Convention - HTTP parameters in (GET/POST/HEAD), POX out &lt;br /&gt;XLANG - XLANG-Specification (superseded by BPEL) &lt;br /&gt;XML-RPC - XML Remote Procedure Call&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-4337448527521311185?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/4337448527521311185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/4337448527521311185'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/05/list-of-web-service-protocols.html' title='List of web service protocols'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-2817879305321933075</id><published>2009-04-22T08:50:00.000-07:00</published><updated>2009-05-03T06:53:19.673-07:00</updated><title type='text'>ASP.FAQ</title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_344677736722136" name="doc_344677736722136" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" rel="media:document" resource="http://d.scribd.com/ScribdViewer.swf?document_id=6582147&amp;access_key=key-k62lh49a9hlp6np8il6&amp;page=1&amp;version=1&amp;viewMode=" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=6582147&amp;access_key=key-k62lh49a9hlp6np8il6&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=6582147&amp;access_key=key-k62lh49a9hlp6np8il6&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_344677736722136_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;             &lt;span rel="media:thumbnail" href="http://i.scribd.com/profiles/images/ikjho4kpn7v54-thumb.jpg"&gt;       &lt;span property="media:title"&gt;ASP.Net FAQ&lt;/span&gt;   &lt;span property="dc:creator"&gt;api_user_11797_sreshyamsundar&lt;/span&gt;       &lt;span property="dc:type" content="Text"&gt;    &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-2817879305321933075?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/2817879305321933075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/2817879305321933075'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/04/hema.html' title='ASP.FAQ'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-5273131689753179187</id><published>2009-04-18T04:42:00.000-07:00</published><updated>2009-04-18T04:46:16.888-07:00</updated><title type='text'></title><content type='html'>&lt;a href="http://aspalliance.com/625"&gt;&lt;span style="font-weight:bold;"&gt;&lt;blockquote&gt;&lt;h2&gt;C# and VB.NET Comparison Cheat Sheet&lt;/h2&gt;&lt;/blockquote&gt;&lt;/span&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-5273131689753179187?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/5273131689753179187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/5273131689753179187'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/04/c-and-vb.html' title=''/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-7501213086153601262</id><published>2009-04-18T04:37:00.000-07:00</published><updated>2009-04-18T04:40:44.206-07:00</updated><title type='text'>Illustrated C# 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Re4LpHxqB1E/Sem7zF5LI-I/AAAAAAAAEvc/k-eOvw5wn34/s1600-h/illustratedcsharp.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 110px; height: 144px;" src="http://3.bp.blogspot.com/_Re4LpHxqB1E/Sem7zF5LI-I/AAAAAAAAEvc/k-eOvw5wn34/s320/illustratedcsharp.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5325994520772027362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.red-gate.com/products/ants_profiler/boost_app_performance_ebook5.htm?utm_source=infoq&amp;utm_medium=textad&amp;utm_term=1506&amp;utm_content=boostappperf-ebook2&amp;utm_campaign=antsprofiler"&gt;Download your free ebook &lt;/a&gt;&lt;br /&gt;If you're a C++ or VB programmer migrating to C# 2008, this book is well worth reading. The author, Daniel Solis offers a very visual approach – with lots of figures, diagrams and code samples – that will help you get to work with C# fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-7501213086153601262?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/7501213086153601262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/7501213086153601262'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/04/illustrated-c-2008.html' title='Illustrated C# 2008'/><author><name>sudhakar kanniyan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Re4LpHxqB1E/Sem7zF5LI-I/AAAAAAAAEvc/k-eOvw5wn34/s72-c/illustratedcsharp.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-1156508035352283601</id><published>2009-04-18T04:32:00.000-07:00</published><updated>2009-04-18T04:35:16.401-07:00</updated><title type='text'></title><content type='html'>&lt;li&gt;&lt;a href="http://www.developerfusion.com/tools/convert/csharp-to-vb/"&gt;Convert C# to VB.NET&lt;/a&gt;&lt;/li&gt; &lt;br /&gt;&lt;li&gt;&lt;a href="http://www.developerfusion.com/tools/convert/vb-to-csharp//"&gt;Convert VB.NET to C#&lt;/a&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-1156508035352283601?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/1156508035352283601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/1156508035352283601'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2009/04/convert-c-to-vb.html' title=''/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-3442589724973808807</id><published>2008-10-25T22:27:00.001-07:00</published><updated>2008-10-25T22:30:15.944-07:00</updated><title type='text'>Introduction to Webservices</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_598765"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/gerardsylvester/webservices-presentation?type=powerpoint" title="Webservices"&gt;Webservices&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=webservices-1221471753856207-9&amp;rel=0&amp;stripped_title=webservices-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=webservices-1221471753856207-9&amp;rel=0&amp;stripped_title=webservices-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/gerardsylvester/webservices-presentation?type=powerpoint" title="View Webservices on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/webservices"&gt;webservices&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/net"&gt;.net&lt;/a&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/4439341071318331268-3442589724973808807?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/3442589724973808807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/3442589724973808807'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2008/10/introduction-in-webservices.html' title='Introduction to Webservices'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-4830642886404749252</id><published>2008-10-25T22:25:00.001-07:00</published><updated>2009-03-22T14:59:15.194-07:00</updated><title type='text'>Introduction To Csharp</title><content type='html'>&lt;div style="width:405px;text-align:left" id="__ss_282487"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/srinatha/introduction-to-csharp?type=powerpoint" title="Introduction To Csharp"&gt;Introduction To Csharp&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=introduction-to-csharp-1204044269102368-3&amp;rel=0&amp;stripped_title=introduction-to-csharp" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=introduction-to-csharp-1204044269102368-3&amp;rel=0&amp;stripped_title=introduction-to-csharp" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/srinatha/introduction-to-csharp?type=powerpoint" title="View Introduction To Csharp on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own.&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/4439341071318331268-4830642886404749252?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/4830642886404749252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/4830642886404749252'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2008/10/introduction-to-csharp.html' title='Introduction To Csharp'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-431773692994450904</id><published>2008-10-25T22:23:00.000-07:00</published><updated>2008-12-08T19:25:28.131-08:00</updated><title type='text'>Dotnet interview questions..</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_492567"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/maddinapudi/dotnet-interview-questions?type=powerpoint" title="Dotnet Interview Questions"&gt;Dotnet Interview Questions&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dotnetinterview-1214826620216600-9&amp;rel=0&amp;stripped_title=dotnet-interview-questions" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dotnetinterview-1214826620216600-9&amp;rel=0&amp;stripped_title=dotnet-interview-questions" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/maddinapudi/dotnet-interview-questions?type=powerpoint" title="View Dotnet Interview Questions on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/net"&gt;.net&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/dotnet"&gt;dotnet&lt;/a&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/4439341071318331268-431773692994450904?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/431773692994450904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/431773692994450904'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2008/10/dotnet-interview-questions.html' title='Dotnet interview questions..'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-973484535726851473</id><published>2008-09-22T08:53:00.000-07:00</published><updated>2008-09-22T09:02:10.404-07:00</updated><title type='text'>Introduction to SOAP</title><content type='html'>SOAP (Simple Object Access Protocol) is a simple solution for interaction of different applications built in different languages and running on different platforms as it uses HTTP as its transport and XML as its payload for sending and receiving messages. Its is a &lt;a class="iAs" style="FONT-WEIGHT: normal! important; FONT-SIZE: 100%! important; PADDING-BOTTOM: 1px! important; COLOR: darkgreen! important; BORDER-BOTTOM: darkgreen 0.07em solid; BACKGROUND-COLOR: transparent! important; TEXT-DECORATION: underline! important" href="http://www.c-sharpcorner.com/UploadFile/mbmehta/soapIntroduction111122005072818AM/soapIntroduction1.aspx#" target="_blank" itxtdid="6754553"&gt;lightweight&lt;/a&gt; and a loosely coupled protocol for exchange of information in a decentralized and a distributed environment.&lt;br /&gt;&lt;br /&gt;A SOAP method is an HTTP request/response that complies with the SOAP encoding rules.&lt;br /&gt;HTTP + XML = SOAP&lt;br /&gt;A SOAP request could be an HTTP POST or an HTTP GET request.&lt;br /&gt;&lt;br /&gt;SOAP stands for Simple Object Access Protocol&lt;br /&gt;SOAP is a communication protocol&lt;br /&gt;SOAP is for communication between applications&lt;br /&gt;SOAP is a format for sending messages&lt;br /&gt;SOAP is designed to communicate via Internet&lt;br /&gt;SOAP is platform independent&lt;br /&gt;SOAP is language independent&lt;br /&gt;SOAP is based on XML&lt;br /&gt;SOAP is simple and extensible&lt;br /&gt;SOAP allows you to get around firewalls&lt;br /&gt;SOAP will be developed as a W3C standard&lt;br /&gt;&lt;br /&gt;Why SOAP?&lt;br /&gt;It is important for application development to allow Internet communication between programs.&lt;br /&gt;Today's applications communicate using Remote Procedure Calls (RPC) between objects like DCOM and CORBA, but HTTP was not designed for this. RPC represents a compatibility and security problem; firewalls and proxy servers will normally block this kind of traffic.&lt;br /&gt;A better way to communicate between applications is over HTTP, because HTTP is supported by all Internet browsers and servers. SOAP was created to accomplish this.&lt;br /&gt;SOAP provides a way to communicate between applications running on different operating systems, with different technologies and programming languages.&lt;br /&gt;&lt;br /&gt;Soap relies on HTTP as a transport mechanism to send XML based messages, the messages are packed in what is called a SOAP envelop and send to the server to process in a Request/Response fashion. SOAP unlike proprietary protocols like DCOM or RMI does not require strong connection between client and the server and the SOAP messages are sting based messages passed from the Client to Server and vice versa in the form of SOAP envelops.&lt;br /&gt;&lt;br /&gt;Syntax Rules&lt;br /&gt;Here are some important syntax rules:&lt;br /&gt;A SOAP message MUST be encoded using XML&lt;br /&gt;A SOAP message MUST use the SOAP Envelope namespace&lt;br /&gt;A SOAP message MUST use the SOAP Encoding namespace&lt;br /&gt;A SOAP message must NOT contain a DTD reference&lt;br /&gt;A SOAP message must NOT contain XML Processing Instructions&lt;br /&gt;Skeleton SOAP Message&lt;br /&gt;&lt;?xml version="1.0"?&gt;&lt;br /&gt;&lt;soap:Envelope&lt;br /&gt;xmlns:soap="http://www.w3.org/2001/12/soap-envelope"&lt;br /&gt;soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"&gt;&lt;soap:header&gt;&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;&lt;/soap:Header&gt;&lt;soap:body&gt;&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;&lt;soap:fault&gt;&lt;br /&gt;...&lt;br /&gt;...&lt;br /&gt;&lt;/soap:Fault&gt;&lt;br /&gt;&lt;/soap:Body&gt;&lt;/soap:Envelope&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;SOAP and Security&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;SOAP as it works on HTTP get the benefits of all the security that are currently available to HTTP, a SOAP message can pass through the firewall of the web server normally from port 80.&lt;br /&gt;Limitations of SOAP Though SOAP is evolving, and has a number of striking features, which are important in development of, distributed applications but still there are certain things which SOAP cannot support which I would like to address&lt;br /&gt;SOAP is a simple protocol: As the name suggests it's a simple protocol and works on HTTP, we cannot expect all the functionality's offered by other protocols like DCOM or RMI.&lt;br /&gt;SOAP may turn out to be slower compared to other proprietary protocols as it requires additional XML processing.&lt;br /&gt;Still SOAP fares well in most areas compared to other wire protocol. As per the specifications, SOAP can also use other transport carrier like SMTP to transmit SOAP messages. Still lot of information on this topic in not available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-973484535726851473?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/973484535726851473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/973484535726851473'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2008/09/introduction-to-soap.html' title='Introduction to SOAP'/><author><name>sudhakar kanniyan</name><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></entry><entry><id>tag:blogger.com,1999:blog-4439341071318331268.post-8065494272043938439</id><published>2008-08-08T19:25:00.000-07:00</published><updated>2009-05-10T20:31:46.832-07:00</updated><title type='text'>web services in c#</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Introduction of web services &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The term "web service" has been used quite frequently lately: you hear people saying how good web services are and how they will dominate the future of software development, but what exactly are web services and how can we create them? In this we will explore the features of Microsoft ASP.NET Web Services, more specifically how to build web services. A real world example extending what I discuss in this article will be shown at the end of this . To understand this webservices fully, you are required to have some previous knowledge of C#, ASP.NET . To try the examples shown in this article for yourself, you will need the .NET Framework and Internet Information Server 5 or higher installed on your Windows NT/XP/2000/vista PC.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is a web service?&lt;br /&gt;&lt;/strong&gt;The term "web service" refers to a form of a component that can be used remotely. Microsoft offers two types of web services in their .NET framework: XML web services and .NET remoting. When developers refer to web services they usually mean XML web services, and in this article I will also refer to XML web services as just web services. Web services are invoked remotely using SOAP or HTTP-GET and HTTP-POST protocols. Web services are based on XML and return an "answer" to the client in XML format. Web services have all the advantages of components plus many more. The most significant benefits include:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Language and platform independence&lt;/strong&gt;: Web services can be built and consumed on any operating system just as long as that operating system supports the SOAP protocol and XML.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Automatic upgrade&lt;/strong&gt;: Unlike components, if a web service requires an update, that update is propagated to all applications consuming that web service immediately. This is because the actual methods and properties for the web service are invoked from the web server remotely, meaning that each function contained within a web service appears as a "black box" to a client: they aren't concerned with the way the function does its job, just as long as it returns the expected result.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How Does it Work?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The basic Web services platform is XML + HTTP.&lt;br /&gt;The HTTP protocol is the most used Internet protocol.&lt;br /&gt;XML provides a language which can be used between different platforms and programming languages and still express complex messages and functions.&lt;br /&gt;Web services platform elements&lt;br /&gt;• SOAP (Simple Object Access Protocol)&lt;br /&gt;• UDDI (Universal Description, Discovery and Integration)&lt;br /&gt;• WSDL (Web Services Description Language)&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Commonly Used Jargon &lt;/strong&gt;&lt;br /&gt;Here's a list of some terms that you'll come across as you begin of the web services&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UDDI&lt;/strong&gt; (Universal Description, Discovery and Integration)&lt;br /&gt;This isn't the case at the moment, but I'm pretty sure that in the future there will be thousands of web services on the Internet. The question is how are we going to find the web services we are looking for? UDDI is the answer to that question. UDDI is a registry that provides a place for a company to register its business and the services that it offers. People or businesses that need a service can use this registry to find a business that provides the service.&lt;br /&gt;&lt;br /&gt;When you search for a web service using UDDI's web service or web browser, UDDI returns a listing of web services that matched your criteria. This list is returned in the form of a DISCO or WSDL document.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WSDL &lt;/strong&gt;(Web Services Description Language)&lt;br /&gt;WSDL is a language that describes a web service. It contains information such as where you can find the web service, methods and properties that it supports, its data types, and the protocol used to communicate with the web service. WSDL is based on the XML format and it's used to create proxy objects. Basically, without a WSDL document, developers wouldn't be able to use web services simply because they wouldn't know which methods and properties they support and also which communication method any particular web service supports.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DISCO &lt;/strong&gt;is a list of WSDL documents. DISCO is used to group common web services together. DISCO documents are also in XML format.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SOAP &lt;/strong&gt;(Simple Object Access Protocol) is a protocol to transport data to and from the web server. It is in XML format and allows you to transport a variety of data types used in .NET. As an alternative to SOAP, we can use HTTP-GET and HTTP-POST, which will be covered later in the article. These protocols return the output in a non-SOAP format, however this output is still in XML format. Well, this isn't the case at the moment, but I'm pretty sure that in the future there will be thousands of web services on the Internet. The question is how are we going to find the web services we are looking for? UDDI (Universal Description, Discovery and Integration) is the answer to that question. UDDI is a registry that provides a place for a company to register its business and the services that it offers. People or businesses that need a service can use this registry to find a business that provides the service. When you search for a web service using UDDI's web service or web browser, UDDI returns a listing of web services that matched your criteria. This list is returned in the form of a DISCO or WSDL document. WSDL WSDL (Web Services Description Language) is a language that describes a web service. It contains information such as where you can find the web service, methods and properties that it supports, its data types, and the protocol used to communicate with the web service. WSDL is based on the XML format and it's used to create proxy objects. Basically, without a WSDL document, developers wouldn't be able to use web services simply because they wouldn't know which methods and properties they support and also which communication method any particular web service supports. DISCO DISCO (Abbreviated from discovery) is a list of WSDL documents. DISCO is used to group common web services together. DISCO documents are also in XML format. SOAP SOAP (Simple Object Access Protocol) is a protocol to transport data to and from the web server. It is in XML format and allows you to transport a variety of data types used in .NET. As an alternative to SOAP, we can use HTTP-GET and HTTP-POST, which will be covered later in the article. These protocols return the output in a non-SOAP format, however this output is still in XML format.&lt;br /&gt;&lt;br /&gt;We now show you how to create the Helloworld Web service. In the following steps, you will create an ASP.NET Web Service project that executes on your computer's local IIS Web server. To create the Helloworld Web service in Visual Studio 2005, perform the following :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Creating an ASP.NET Web Service in Visual Studio 2005&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_Re4LpHxqB1E/SJ0CUj0IiVI/AAAAAAAADPY/LoexdDLvXb8/s1600-h/Newwebservices.jpg"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_Re4LpHxqB1E/SJ0CUj0IiVI/AAAAAAAADPY/LoexdDLvXb8/s1600-h/Newwebservices.jpg"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_Re4LpHxqB1E/SJ0CUj0IiVI/AAAAAAAADPY/LoexdDLvXb8/s1600-h/Newwebservices.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2bWZpq9YI/AAAAAAAADPo/X8a2Cenn0BY/s1600-h/helloworldwebservice.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5232509151219479938" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2bWZpq9YI/AAAAAAAADPo/X8a2Cenn0BY/s320/helloworldwebservice.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;HelloWorldMethod. HelloWorldMethod returns a string, "Hello World". We'll add modifications to this web service as we learn more about the available features of web services.&lt;br /&gt;&lt;br /&gt;Before building a web service, a virtual directory or web application must be created using IIS&lt;br /&gt;&lt;br /&gt;The following code shows the most basic web service:&lt;br /&gt;&lt;br /&gt;using System.Web.Services;&lt;br /&gt;public class HelloWorld : WebService&lt;br /&gt;{&lt;br /&gt;[WebMethod]&lt;br /&gt;public string HelloWorldMethod()&lt;br /&gt;{&lt;br /&gt;return "Hello World";&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Copy the code above into your favourite text editor and save the file into the virtual directory we created above as HelloWorld.asmx. The file extension for a web service is .asmx.&lt;br /&gt;&lt;br /&gt;You can now access our HelloWorld web service in your browser by visiting &lt;a href="http://localhost/HelloWorld/HelloWorld.asmx"&gt;http://localhost/HelloWorld/HelloWorld.asmx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You should see a page that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_Re4LpHxqB1E/SJ2drLkUsgI/AAAAAAAADPw/qvY4QHdm8OQ/s1600-h/helloworld_run.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5232511707239461378" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_Re4LpHxqB1E/SJ2drLkUsgI/AAAAAAAADPw/qvY4QHdm8OQ/s320/helloworld_run.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This web page is automatically built by IIS using the WSDL of our web service. You can change how this page looks but that's out of the scope for this article. You can view the raw WSDL by clicking on the link to "Service Description", which will forward you to the WSDL for our web service.&lt;br /&gt;&lt;br /&gt;As you can see, the WSDL shows where you can find the web service (URI) and other useful information including the methods that we have created in our web service. Now that we've built the web service, we need to be able to use it. On the main web service page, you can see the method that we've created. If you click on the method, it will forward you to this page:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2hctfF0NI/AAAAAAAADP4/T_XTRF-ex4Q/s1600-h/helloworld_method.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5232515856692793554" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2hctfF0NI/AAAAAAAADP4/T_XTRF-ex4Q/s320/helloworld_method.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you click on the invoke button, you'll get the following result:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2iY-TEn1I/AAAAAAAADQA/8dm-AnemWaw/s1600-h/helloworld_xml.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5232516891997937490" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2iY-TEn1I/AAAAAAAADQA/8dm-AnemWaw/s320/helloworld_xml.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;  var GOOG_FIXURL_LANG = 'en';&lt;br /&gt;  var GOOG_FIXURL_SITE = 'http://csharpwebservices.blogspot.com/';&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript" &lt;br /&gt;    src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4439341071318331268-8065494272043938439?l=csharpwebservices.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/8065494272043938439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4439341071318331268/posts/default/8065494272043938439'/><link rel='alternate' type='text/html' href='http://csharpwebservices.blogspot.com/2008/08/webservices-in-c.html' title='web services in c#'/><author><name>sudhakar kanniyan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Re4LpHxqB1E/SJ2bWZpq9YI/AAAAAAAADPo/X8a2Cenn0BY/s72-c/helloworldwebservice.jpg' height='72' width='72'/></entry></feed>
