استفاده از یک Web Service درASP.NET (بخش دوم)

جمعه 11 تیر 1395

در این مقاله مطالب مفیدی پیرامون نحوه استفاده از Web Service ها در تکنولوژی ASP.NET می آموزیم و مراحل کار را در یک برنامه پیاده سازی خواهیم کرد.

استفاده از یک Web Service درASP.NET (بخش دوم)

قبل از این که به مطالعه این مقاله بپردازید، به شما پیشنهاد می کنیم برای آشنایی بیشتر با Web Service ها مقاله زیر را مطالعه کنید:

شروع کار با ASP.NET Web Service (بخش اول )

حال درباره نحوه استفاده از Web Service ها صحبت خواهیم کرد.

اساساً WSDL document به معرفی و تعریف یک Web Service می پردازد و شامل لیستی از همه متدهایی است که توسط web server مورد استفاده قرار می گیرد. به Web Service  زیر نگاه کنید (این Web Service را در مقاله های قبلی ساخته ایم. ) که دارای دو متد است، یکی از این متدها AddName و دیگری Sub است.

 

 برای این که بتوانیم  WSDL document مربوط به service ای که ساخته ایم را ببینیم، برنامه ای که در مقاله قبل ساخته بودیم را اجرا می کنیم. برای مشاهده ی WSDL document بر روی Service Description کلیک کنید.

در تصویر زیر در WSDL Document دو متد به نام های “AddName”  و  “Sub”را می بینید و علاوه بر این ها، متدهایی به نام های دیگر را هم می بینید، همچنین در WSDL Document  نام پارامتر هایی که در داخل متدها وجود دارند نیز آمده است.

در متد AddName ، دو پارامتر وجود دارند که نوع آن ها string است. متد Sub نیز دو پارامتر دارد که نوع آن ها int است. اطلاعاتی که در  این WSDL document وجود دارند می توانند برای ساخت یک کلاس proxy به شما کمک کنند.

حالا نحوه ایجاد یک کلاس proxy با استفاده از WSDL document را خواهیم آموخت. برنامه Visual Studio را باز کنید، ما نیاز داریم تا به برنامه قبلی یک web application اضافه کنیم. بر روی solution کلیک راست کنید و یک پروژه جدید اضافه کنید.

حالا ما می توانیم یک web service ایجاد کنیم و آن را با هر نوع برنامه ی دلخواهی به کار بگیریم.

حالا یک Asp.Net web application اضافه کنید و نام آن را DemoWebService بگذارید. سپس بر روی “Ok” کلیک کنید.

همان طور که در تصویر زیر می بینیم، در این مرحله نیاز داریم تا یک web service reference به پروژه اضافه کنیم. حالا بیایید یک کلاس proxy نیز برای این کار اضافه کنیم. بر روی پوشه ی References کلیک راست کنید و گزینه ی Add Service Reference را انتخاب کنید.

در داخل پنجره ای که باز می شود، در نوار آدرس، باید آدرس مربوط به WSDL document را وارد کنید. بر روی دکمه ی “Go” که در جلوی نوار آدرس قرار دارد کلیک کنید. بعد از این که بر روی دکمه go کلیک کنید، می توانید ببینید که MyWebService به نمایش در می آید. اگر محتویات آن را نگاه کنید، می بینید که شامل دو متد به نام های AddName  و  Sub است. پس از این مراحل یک نام مناسب انتخاب کنید و بر روی دکمه ی “Ok” کلیک کنید.

 

زمانی که بر روی ok کلیک کنید ، visual studio بر اساس WSDL document ، شروع به ساختن یک کلاس proxy برای شما می کند. به solution نگاه کنید. یک پوشه ی Service Reference در solution وجود دارد و در زیر آن یک فضای نام DemoService وجود دارد که ما آن را ایجاد کرده ایم. اگر می خواهید کلاس proxy ای که برای ما تولید شده است را ببینید بر روی دکمه کلیک کنید . این دکمه همه ی فایل ها را به ما نشان خواهد داد.

 اگر فایل DemoService را گسترش بدهید، یک فایل به نام Reference.svcmap می بینید. اگر این فایل را باز کنید، فایل Reference.cs را خواهید دید. این فایل را باز کنید.

 

 در این فایل ما یک کلاس به نام MyWebServiceClient داریم  که همان کلاسی است که به عنوان کلاس proxy برای ما تولید شده است.

 

اگر به سمت پایین فایل بروید، یک کلاس می بینید که شامل دو متد به نام های AddName  و  Subاست. این دو کلاس و پارامترهای آن ها شبیه به متدهایی هستند که در درون web service ما وجود داشتند.

حالا برنامه ی کاربر، که همان web application ما به نام DemoWebService است با این کلاس ارتباط برقرار خواهد کرد. این کلاس proxy متد web service را هم در خودش دارد. در حال حاضر ما نیاز داریم تا یک Web Form به برنامه اضافه کنیم. برای این کار مطابق شکل زیر بر روی Web application کلیک راست کنید و سپس یک web form اضافه کنید.

یک نام برای صفحه انتخاب کنید و سپس بر روی دکمه ی ok کلیک کنید.

صفحه را مانند تصویر زیر طراحی کنید. بعد از اتمام طراحی صفحه، بر روی دکمه دوبار کلیک کنید تا بتوانیم کدهای موردنیاز را بنویسیم.

در بخش رویداد دکمه، می خواهیم ارتباطی با کلاس proxy که قبلا ساخته ایم، ایجاد کنیم. نام کلاس proxy ، MyWebServiceSoapClient است. ما برای این که بتوانیم از آن استفاده کنیم، نیاز داریم تا از روی این کلاس ، یک نمونه جدید بسازیم.

ما یک نمونه به نام 'cl' می سازیم.

DemoService.MyWebServiceSoapClient cl = new DemoService.MyWebServiceSoapClient();  

بعد از اینکار ما باید متد Sub() را به این نمونه اضافه کنیم. این متد دو پارامتر می گیرد:

cl.Sub(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));  

حالا بیایید این نتیجه را در داخل یک متغیر از نوع int  به نام res ذخیره کنیم.

    int res = cl.Sub(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));  

    protected void Button1_Click(object sender, EventArgs e)  
    {  
        DemoService.MyWebServiceSoapClient cl = new DemoService.MyWebServiceSoapClient();  
     
        int res = cl.Sub(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));  

        Label1.Text = res.ToString();  
    }   

حالا همه کارها انجام شده است، این پروژه را به عنوان پروژه ی startup (شروع شونده) تنظیم کنید.

و سپس این فرم را به عنوان صفحه شروع تنظیم کنید.

 

حالا با زدن کلید F5 برنامه را اجرا کنید. نتیجه به صورت زیر خواهد بود.

در MyWebForm.aspx.cs ، هیچ گونه منطق و یا کدی برای به دست آوردن حاصل تفریق دو عدد وجود ندارد، بنابراین عملیات تفریق توسط web service انجام می شود. همه عملیات نیز توسط کلاس proxy اجرا می شوند.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید