HOW 2 LEARN ASP.NET
نویسنده : delshad
تاریخ  : ۱۳۸۷/۱۲/۶
امتیاز :
بازدید : 4185
موضوع : نحوه ایجاد سرویس های وب (Webservice)
توضیحات : سرویس های وب کاربرد های زیادی داشته و چون بر پایه XML بنا شده با هر زبان برنامه نویسی میتوان از آن ها استفاده کرد ، به عنوان مثال شما یک سرویس وب به زبان C شارپ سخته و آن را به در اختیار دیگران قرار می دهید ، دیگران توسط خیلی از زبان های برنامه نویسی مانند Php ، جاوا ، سایر زبان های دات نت و حتی جاوااسکریپت و فلش و... می توانند از متد های شما استفاده کنند .
     

ساخت سرویس های وب (Webservice)

در مورد سرویس های وب در مقالات قبلی صحبت کردیم  و دریافتیم که توسط سرویس های وب شما قادر خواهید بود امتد های ساخته شده خود را در  فضای اینترنت به اشتراک گذاشته و یا از متدهای به اشتراک گذاشته شده دیگران استفاده نمایید .
سرویس های وب کاربرد های زیادی داشته و چون بر پایه XML بنا شده با هر زبان برنامه نویسی میتوان از آن ها استفاده کرد ، به عنوان مثال شما یک سرویس وب به زبان C شارپ سخته و آن را به در اختیار دیگران قرار می  دهید ، دیگران توسط  خیلی از زبان های برنامه نویسی مانند Php ، جاوا ، سایر زبان های دات نت و حتی جاوااسکریپت و فلش و... می توانند از متد های شما استفاده کنند .

 ساخت وب سرویس در محیط دات نت بسیار  ساده می باشد .
یک پروژه جدید  وب ایجاد نمایید ، از منوی  WebSite گزینه  Add New Item را گزینش نموده و سپس آیتم  Web Service را بر گزینید ، در صورت نیاز نام آنرا تغییر داده و تایید نمایید .
اکنون یک آیتم با پسوند asmx. به پروژه و یک آیتم دیگر با همان نام  با پسوند  cs. یا vb. به پوشه App_Code اضافه خواهد شد  (مثلا WebService.cs و WebService.asmx) .

تمامی کد نویسی ما در فایل WebService.cs  یا (WebService.vb در زبان Vb.NET) انجام خواهد  .
فایل WebSevice.cs را باز نمایید . کد هایی که مشاهده خواهید کرد به صورت پیشفرض به  به شکل زیر خواهد بود :

کد سی شارپ :

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.Services;

/// <summary>

/// Summary description for WebService

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class WebService : System.Web.Services.WebService {

    public WebService () {

        //Uncomment the following line if using designed components

        //InitializeComponent();

    }

    [WebMethod]

    public string HelloWorld() {

        return "Hello World";

    }

}



کد وی بی :

Imports System.Web

Imports System.Web.Services

Imports System.Web.Services.Protocols

<WebService(Namespace:="http://tempuri.org/")> _

<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _

Public Class WebService

    Inherits System.Web.Services.WebService

    <WebMethod()> _

    Public Function HelloWorld() As String

        Return "Hello World"

    End Function

End Class


همانطور که ملاحظه می کنید ساختار کلاس یک سرویس وب کمی با ساختار  کلاس صفحات Asp.NET متفاوت هست ، این کلاس از   System.Web.Services.WebService ارث بری می کند .

مهمترین بخش های یک کلاس وب سرویس متد های آن می باشد . باید دقت داشته باشید که  یک متد در کلاس وب سرویس باید با  WebMethod آغاز  گردد  (در سی شارپ با [WebMethod] و در وی بی دات نت با  <WebMethod()> _ آغاز خواهد شد ) و در خط بعد خود متد قرار میگیرد ، از این به بعد به این متد "وب متد" خواهیم گفت .

همانطو که ملاحظه می کنید به صورت پیشفرض یک وب متد به نام  HelloWorld برای مثال در کلاس وجود دارد . این متد یک تابع  از نوع رشته ای بوده بدون هیچ ورودی  که فقط یک مقدار ثابت Hello World را بر می گرداند .

    [WebMethod]

    public string HelloWorld() {

        return "Hello World";

    }


این متد را حذف نموده و متد های مورد  نظر خودمان را ایجاد می کنیم ، به عنوان مثال فرض کنید بخواهیم یک وب سرویس ماشین حساب ایجاد کنیم  ، شما میتوانید متدهایی برای جمع ، ضرب و... ایجاد نمایید .
متد جمع و ضرب را به صورت زیر می نویسیم :


    [WebMethod]

    public int Multiply(int x, int y)

    {

        return x * y;

    }

   

    [WebMethod]

    public int Plus(int x, int y)

    {

        return x + y;

    }


خوب به همین سادگی یک وب سرویس ایجاد کردیم که عمل ضرب و جمع را به اشتراک خواهد گذاشت .
حال به چند نکته مفید در همین مورد می پردازیم :

لطفا نگاهی به این آدرس بیاندازید : http://faradade.com/webservices/whois.asmx در این آدرس بنده 5 متد مفید ابزار دامنه ایجاد کرده ام ، اگر به این صفحه دقت نمایید در زیر هر متد یک توضیح کوتاه در مورد متد نوشته شده است ، برای نوشتن توضیحات برای هر متد به صورت زیر عمل کنید :

سی شارپ :

    [WebMethod(Description = "ضرب دو عدد")]

    public int Multiply(int x, int y)

    {

        return x * y;

    }


وی بی :

    <WebMethod(Description:="ضرب دو عدد")> _

    Public Function Multyply(ByVal x As Integer, ByVal y As Integer) As Integer

        Return (x * y)

    End Function


نکته دیگر که بد نیست به آن اشاره کنم افزودن توضیحات برای کل وب سرویس و تغییر فضا نام آن می باشد . اگر به خط اول کلاس وب سرویس خود نگاهی بیاندازید متوجه خواهید شد که فضا نام پیشفرض آن http://tempuri.org می باشد ، ترجیحا این فضا نام را به آدرس سایت خود تغییر دهید .
برای اضافه کردن توضیحات نیز به صورت زیر عمل کنید :

سی شارپ :

<WebService(Namespace:="http://faradade.com/webservices/", Description:="FaraDade WebServices")> _



وی بی :

[WebService(Namespace = " http://faradade.com/webservices/",Description = " FaraDade WebServices")]


حال این سرویس را ذخیره کرده و بر روی وب بارگزاری نمایید ، کافیست آدرس صفحه asmx. را در اختیار دیگران قرار دهید تا آنها بتوانند از متدهای استفاده کنند .

دانلود فایل پروژه

 

 

 
امتیاز بدهید :

نویسنده : معصومه m-ghazandeh@yahoo.com ۱۳۸۹ اول مرداد
ممنونم از اطلاعات مفیدتون فقط دانلود سایتتون خیلی پایین
نویسنده : فریده Farideh.elyaswandi@yahoo.com ۱۳۸۹ نوزدهم خرداد
ممنون
نویسنده : پسمان pmn.asd@gmail.com ۱۳۸۸ چهاردهم آبان
سلام دوست عزیز خیلی از مقاله خوبتون ممنون. لطفا در مورد publish کردن روی سایت بیشتر توضیح بدید.
نویسنده : tinamout@yahoo.com ۱۳۸۸ بيست و يکم مرداد
سلام ...خیلی خوب توضیح داده شده ، اگر از SQL بخواهیم وب سرویس بسازیم هم راهش اینه ؟ممنون میشم توضیح بدید.
نویسنده : ۱۳۸۸ بيست و يکم مرداد
سلام ...خیلی خوب توضیح داده شده ، اگر از SQL بخواهیم وب سرویس بسازیم هم راهش اینه ؟ممنون میشم توضیح بدید.
نویسنده : امیر amir.behravan65@gmail.com ۱۳۸۸ بيست و نهم تير
میشه نحوه استفاده از این سرویس به و راه اندازی به صورت local رو هم توضیح بدی؟
نویسنده : امیر amir.behravan65@gmail.com ۱۳۸۸ بيست و نهم تير
سلام ممنونم خیلی خوبه اگه لطف کنید یه ایمیل به من بدید که بتونم سوالاتم رو با شما در میون بزارم ممنون میشم
نویسنده : ابراهیم webpardaz@gmail.com ۱۳۸۸ سيزدهم فروردين
سلام دوست عزیز از مقاله پر ارزشتون ممنونم به من خیلی کمک کرد.
نویسنده : کامبیز m7d_mh@yahoo.com ۱۳۸۷ هفتم اسفند
دستت درد نکنه جناب دلشاد. بسیار آموزنده و مفید بود . واقعا ممنونم.

 
نظر بدهید :
لطفا سوالات فنی خود را در تالار گفتگو www.forum.how2learnasp.net مطرح نمایید
نام :  
ایمیل :    
نظرات :
 
Xml rss feed

 

Valid CSS! Atom rss feed
Ali Delshad Official Site