Sunday, 16 June 2013

ASP.NET Web Service Basics

Introduction
We can now use ASP.NET to create Web Services based on industrial standards including XML, SOAP and WSDL.A Web Service is a software program that uses XML to exchange information with other software via common internet protocols. In a simple sense, Web Services are a way for interacting with objects over the Internet.A web service is
  • Language Independent.
  • Protocol Independent.
  • Platform Independent.
  • It assumes a stateless service architecture.
  • Scalable (e.g. multiplying two numbers together to an entire customer-relationship management system).
  • Programmable (encapsulates a task).
  • Based on XML (open, text-based standard).
  • Self-describing (metadata for access and use).
  • Discoverable (search and locate in registries)- ability of applications and developers to search for and locate desired Web services through registries. This is based on UDDI.
Web Service History
  • Microsoft coined the term "Web services" in June 2000, when the company introduced Web services as a key component of its .Net initiative, a broad new vision for embracing the Internet in the development, engineering and use of software.
  • As others began to investigate Web services, it became clear that the technology could revolutionize (be the next stage in) distributed computing.
  • Web services encompass a set of related standards that can enable any two computers to communicate and exchange data via a network, such as the Internet.
  • The primary standard used in Web services is the Extensible Markup Language (XML) developed by the World Wide Web Consortium (W3C).
  • Developers use XML tags to describe individual pieces of data, forming XML documents, which are text-based and can be processed on any platform.
  • XML provides the foundation for many core Web services standards (SOAP, WSDL, and UDDI) and vocabularies (XML-based markup for a specific industry or purpose).
  • Almost every type of business can benefit from Web services such as expediting software development, integrating applications and databases, and automating transactions with suppliers, partners, and clients.
Key Web Service Technologies
  • XML- Describes only data. So, any application that understands XML-regardless of the application's programming language or platform-has the ability to format XML in a variety of ways (well-formed or valid).
  • SOAP- Provides a communication mechanism between services and applications.
  • WSDL- Offers a uniform method of describing web services to other programs.
  • UDDI- Enables the creation of searchable Web services registries.
When these technologies are deployed together, they allow developers to package applications as services and publish those services on a network.Web services advantages
  • Use open, text-based standards, which enable components written in various languages and for different platforms to communicate.
  • Promote a modular approach to programming, so multiple organizations can communicate with the same Web service.
  • Comparatively easy and inexpensive to implement, because they employ an existing infrastructure and because most applications can be repackaged as Web services.
  • Significantly reduce the costs of enterprise application (EAI) integration and B2B communications.
  • Implemented incrementally, rather than all at once which lessens the cost and reduces the organizational disruption from an abrupt switch in technologies.
  • The Web Services Interoperability Organization (WS-I) consisting of over 100 vendors promotes interoperability.
Web Services Limitations
  • SOAP, WSDL, UDDI- require further development.
  • Interoperability.
  • Royalty fees.
  • Too slow for use in high-performance situations.
  • Increase traffic on networks.
  • The lack of security standards for Web services.
  • The standard procedure for describing the quality (i.e. levels of performance, reliability, security etc.) of particular Web services รข€“ management of Web services.
  • The standards that drive Web services are still in draft form (always will be in refinement).
  • Some vendors want to retain their intellectual property rights to certain Web services standards.
 Web Service ExampleA web service can perform almost any kind of task.
  • Web Portal- A web portal might obtain top news headlines from an Associated press web service.
  • Weather Reporting- You can use Weather Reporting web service to display weather information in your personal website.
  • Stock Quote- You can display latest update of Share market with Stock Quote on your web site.
  • News Headline: You can display latest news update by using News Headline Web Service in your website.
  • You can make your own web service and let others use it. For example you can make Free SMS Sending Service with footer with your companies advertisement, so whosoever uses this service indirectly advertises your company. You can apply your ideas in N no. of ways to take advantage of it.

Example of Creating Web Service in .NetHere are samples codes which I use to create and consume ASP.NET Web Service:
  • Step 1- Create the ASP.NET Web Service Source File
Open Visual Studio 2010 and create  a new web site.->Select .Net Framework 3.5. ->Select ASP.NET Web Service page -> Then, you have to give the name of your service. In this example I am giving it's name "mywebservice". Then Click the ok Button. A screen-shot of these activity is given below.img1.gif
  • Step 2- click on the "ok" button; you will see the following window.
img2.gif
Here (in the above figure), you will note that there is predefined method "HelloWorld" which returns the string "Hello World". You can use your own method and can perform various operations. Here I made a simple method which returns the multiplication of two numbers using the code.Service.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
// [System.Web.Script.Services.ScriptService] public class Service : System.Web.Services.WebService{
    [WebMethod]
    public int Multiplication(int a,int b)
    {
        return (a*b);
    }
}
    [WebMethod]    public int Multiplication(int a,int b)    {        return (a*b);    }}Before  Debugging the above Web Service see some important termusing System.Web.Services;This directive allows you to refer to objects in the System.Web.Services namespace without having to fully qualify the request. This statement is optional, but if it is not included, every reference to an object in this namespace must be fully qualified. An example is the next line, which is our class declaration. With the using statement, it looks as follows in C#:The  [WebMethodattributeThe Service class exposes a single method, the public method Multiplication, which takes two integer arguments and returns the multiplication of two number as integer. To expose a method as a part of a web service, you must decorate it with the WebMethod attribute, which tells the compiler to treat it as such. Any method marked with the WebMethod attribute must be defined as public. Class methods exposed as web services follow the same object-oriented rules as any other class, and therefore methods marked private, protected, or internal are not accessible and will return an error if you attempt to expose them using the WebMethod attribute.In the Solution Explorer you will seeimg3.gifService.asmx- which contains the following code:<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>The page directive WebService is required and the class is the name of the .NET Class to expose the Web Service, each method exposes as Web Service Class Method need to have a declarative attribute statement.The WebService directive is similar to the Page directive that begins most .aspx pages. For theMultiplication web service to work, you must assign values to two WebService directive attributes: Language and Class.The required Language attribute lets .NET know which programming language the class has been written in. As you might guess, the acceptable values for the language attribute are currently C#, VB, and JS for JScript.NET.The Class attribute, also required, tells ASP.NET the name of the class to expose as a web service. Because a web service application can comprise multiple classes, some of which may not be web services, you must tell .NET which class to expose, a step analogous to declaring a Main() method to indicate the entry point of a .NET console application or component. Note that even if your web service contains only one class, setting this attribute is required.Now back to the our web service.Step 3- Build Web Service and Run the Web Service for testing by pressing F5 function key.img4.gif
Copy the url of this web service for further use.Click on the Mutiplication button to test the web service.img5.gif
Enter the value of a and b.img6.gif
By pressing the "Invoke" button a XML file is generated.img7.gif
Now our web service is ready to use; we just need to create a new web site to consume the web service.Example of Testing Web Service in .Net.Step 5- Create a Test Web Site by File > New > Web Site > Asp.net Web Siteimg8.gif
Name the web site, for example here I have choosen the name "Test".Step 6- Right-click Solution Explorer and choose "Add Web Reference".img9.gif
Step 7- Paste the url of the web service and click on 'Go' button and then 'Add reference'.img10.gif
Step 8- Now your web service is ready to use in the Solution Explorer you will see.img11.gif
Step 9- Go to the design of the Default.aspx page; drag and drop three Textboxes and one button.img12.gif
step 10- Go to Default.cs page and on the button click event use the following code.
    protected void Button1_Click(object sender, EventArgs e)
    {
        localhost.Service mys = new localhost.Service();   
    {        localhost.Service mys = new localhost.Service();   // you need to create the object of the web service         int a = Convert.ToInt32(TextBox1.Text);        int b = Convert.ToInt32(TextBox2.Text);        int c = mys.Multiplication(a, b);        TextBox3.Text = c.ToString();    }Step 11- After pressing the F5 function key to run the website, you will see:img13.gif
Enter the number.img14.gif
Press the show button.img15.gif


No comments:

Post a Comment