1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

Web service چیست و چه کاربردی دارد؟

شروع موضوع توسط AftabGardoon ‏8/2/19 در انجمن ASP.NET

Tags:
  1. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    Web service چیست و چه کاربردی دارد؟
    یک web service در واقع یک قابلیت مبتنی بر وب است که از طریق پروتکل های وب قابل دسترسی می باشد. web service ها توسط application های تحت وب مورد استفاده قرار می گیرند. در برنامه نویسی و تولید web service ها به سه جنبه ی مختلف برمی خوریم:


    • ایجاد web service
    • ایجاد proxy
    • استفاده از web service
     
  2. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ایجاد web service
    Web service در اصل یک برنامه یا اپلیکیشن تحت وب متشکل از توابع و متدهایی است که توسط دیگر برنامه ها استفاده می شود. web service همچنین از معماری code-behind که در صفحات وب ASP.NET پیاده شده و بکار می رود پیروی می کند با این تفاوت که دارای رابط کاربری (UI) نمی باشد.


    برای درک بهتر این مفهوم به ایجاد یک web service می پردازیم که اطلاعاتی در رابطه با ارزش و قیمت سهام عرضه می کند. مشتری ها (client) می توانند بر اساس نشانه ای (symbol) که برای سهام بکار رفته از اسم و قیمت سهام مربوطه query بگیرند (اسم و قیمت سهام مورد نظر را بر اساس symbol آن درخواست کنند). جهت آسان نگه داشتن این مثال، مقادیر لازمه درون یک آرایه ی دوبعدی hard-code شده اند. Web service مورد نظر دارای سه متد می باشد:


    • تابع پیش فرض HelloWorld
    • یک تابع GetName
    • تایع GetPrice
     
  3. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    برای ایجاد web service مراحل زیر را دنبال کنید:


    • مرحله ی اول : به بخش File -> New -> Web Site محیط ویژوال استودیو مراجعه کرده، سپس گزینه ی ASP.NET Web Service را انتخاب کنید.
    • مرحله ی دوم : در این مرحله یک فایل web service به نام Service.asmx به همراه file code-behind آن، Service.cs در پوشه ی App_Code پروژه ایجاد می گردد.
    • مرحله ی سوم : اسم فایل ها را به ترتیب به StockService.asmx و StockService.cs تغییر دهید.
    • مرحله ی چهارم : فایل .asmx تنها یک WebService directive در خود دارد:
    کد:
    < %@ WebService Language="C#" CodeBehind="~/App_Code/StockService.cs" Class="StockService" % >
    
     
  4. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مرحله ی پنجم : فایل StockService.cs را باز کنید. مشاهده می کنید که کد ایجاد شده در آن تنها یک سرویس ساده ی Hello World است. web service code behind file پش فرض مشابه کد زیر می باشد:

    کد:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
     
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
     
    using System.Xml.Linq;
     
    namespace StockService
    {
        // < summary >
        // Summary description for Service1
        // < summary >
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [ToolboxItem(false)]
        // To allow this Web Service to be called from script,
        // using ASP.NET AJAX, uncomment the following line.
        // [System.Web.Script.Services.ScriptService]
        public class Service1 : System.Web.Services.WebService
        {
            [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
        }
    }
     
  5. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مرحله ی ششم : code behind file را اصلاح کرده و آرایه ی دو بعدی از رشته ها برای نشانه ی سهام، اسم، قیمت آن و دو متد ویژه ی بازایابی اطلاعات مربوط به سهام به آن اضافه کنید:

    کد:
    using System;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    [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]
     
    public class StockService : System.Web.Services.WebService
    {
        public StockService()
        {
            //Uncomment the following if using designed components
            //InitializeComponent();
        }
     
        string[,] stocks =
       {
          {"RELIND", "Reliance Industries", "1060.15"},
          {"ICICI", "ICICI Bank", "911.55"},
          {"JSW", "JSW Steel", "1201.25"},
          {"WIPRO", "Wipro Limited", "1194.65"},
          {"SATYAM", "Satyam Computers", "91.10"}
       };
     
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public double GetPrice(string symbol)
        {
            //it takes the symbol as parameter and returns price
            for (int i = 0; i < stocks.GetLength(0); i++)
            {
                if (String.Compare(symbol, stocks[i, 0], true) == 0)
                    return Convert.ToDouble(stocks[i, 2]);
            }
            return 0;
        }
     
        [WebMethod]
        public string GetName(string symbol)
        {
            // It takes the symbol as parameter and
            // returns name of the stock
            for (int i = 0; i < stocks.GetLength(0); i++)
            {
                if (String.Compare(symbol, stocks[i, 0], true) == 0)
                    return stocks[i, 1];
            }
     
            return "Stock Not Found";
        }
    }
     
  6. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مرحله ی هفتم : اجرای web service application یک web service test page در اختیار شما می گذارد که با استفاده از آن می توانید متدهای service را آزمایش کنید:

    [​IMG]
     
  7. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مرحله ی هشتم : روی اسم متد کلیک کرده و مطمئن شوید درست عمل می کند:

    [​IMG]
     
  8. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مرحله ی نهم : برای تست کردن متد GetName، یک از نشانه های سهام را که hard code شده است استفاده کنید. نشانه اسم سهام را باز می گرداند

    [​IMG]
     
  9. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    استفاده از web service
    برای استفاده از ،web service یک وب سایت تحت همان solution ای که قبلا ایجاد کرده بودید، بسازید. این کار از طریق راست کلیک روی اسم Solution در پنجره ی Solution Explorer امکان پذیر می باشد. صفحه ی وبی که web service را فرامی خواند باید برای نمایش دادن نتایج بازگشتی دارای یک کنترل label بوده و همچنین دو دکمه که یکی ویژه ی postback و دیگری ویژه ی فراخونی سرویس است داشته باشد.
     
  10. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    content file برنامه ی تحت وب مورد نظر به ترتیب زیر می باشد:

    کد:
    < %@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" % >
    < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
    < html xmlns="http://www.w3.org/1999/xhtml" >
    < head runat="server" >
        < title >Untitled Page
        < /title >
    < /head >
    < body >
        < form id="form1" runat="server" >
            < div >
                < h3 >Using the Stock Service< /h3 >
                < br / >
                < br / >
                < asp:Label ID="lblmessage" runat="server" >< /asp:Label >
                < br / >
                < br / >
                < asp:Button ID="btnpostback" runat="server" OnClick="Button1_Click" Text="Post Back" Style="width: 132px" / >
                < asp:Button ID="btnservice" runat="server" OnClick="btnservice_Click" Text="Get Stock" Style="width: 99px" / >
            < /div >
        < /form >
    < /body >
    < /html >