دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

استفاده از سرویس WCF

دوره های پیشنهادی

WCF –استفاده از سرویس

اپلیکیشن ها می توانند به سرویس های WCF دسترسی داشته و از آن ها استفاده کنند. یک سرویس WCF می تواند بر اساس نوع میزبانی، به روش های مختلفی مورد استفاده قرار گیرد. در زیر روش های دسترسی و استفاده از سرویس WCF برای هر یک از گزینه های میزبانی پرطرفدار تشریح شده است:

· دسترسی و استفاده از سرویس میزبانی شده بر روی IIS 5/6

· استفاده از سرویس WCF که با روش self-hosting میزبانی شده است

· دسترسی به سرویس میزبانی شده در WAS

· استفاده از سرویس WCF میزبانی شده در Windows Service

دسترسی و استفاده از سرویس میزبانی شده بر روی IIS 5/6

فرایند استفاده از سرویس میزبانی شده توسط IIS 5/6، نحوه ی ایجاد proxy و اپلیکیشن console در زیر به تفصیل آموزش داده شده است.

گام اول –پس از اینکه سرویسی در IIS مستقر (host) شد، می توان توسط اپلیکیشن های سمت کلاینت (client application) از آن ها استفاده کرد. پیش از ایجاد اپلیکیشن سمت کلاینت، بایستی یک proxy برای سرویس ایجاد کرد. اپلیکیشن سمت کلاینت توسط این proxy با سرویس تعامل برقرار می کند. برای ایجاد proxy، ابتدا پنجره ی فرمان (command prompt) را در محیط visual باز کنید. با استفاده از دستور service در پنجره ی فرمان، می توانید کلاس proxy و اطلاعات پیکربندی و تنظیمات آن را ایجاد نمایید.

svcutilhttp://localhost/IISHostedService/Service.svc

آموزش WCF

پس از اجرای این دستور، دو فایل در مسیر پیش فرض ساخته می شود:

1. MyService.cs –کلاس Proxy سرویس (WCF)

2. Output.config –اطلاعات مربوط به پیکربندی و تنظیمات سرویس

گام دوم - حال به ساخت اپلیکیشن Console در محیط ویژوال می پردازیم (client application).

آموزش WCF

گام سوم –فضای نام (reference) 'System.ServiceModel'; را به پروژه اضافه کنید. این فضای نام در واقع فایل dll اصلی سرویس WCF می باشد.

گام چهارم – یک کلاس Proxy ایجاد نمایید.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MyServiceClient

{

  Class Program

  {

     Static void Main(string[] args)

     {

        // Creating Proxy for the MyService

        ServiceClient Client = newServiceClient();

        Console.WriteLine("Client calling the service...");

        Console.WriteLine("Hello Ram");

        Console.Read();

     }

  }

}

خروجی زیر به نمایش در می آید:

آموزش WCF

استفاده از سرویس WCF میزبانی شده با روش Self-hosting

گام اول –سرویس میزبانی شده و اکنون می خواهیم کلاس proxy را برای کلاینت پیاده سازی کنیم. روش های مختلفی برای ایجاد proxy وجود دارد.

· با استفاده از SvcUtil.exe، می توان کلاس proxy و فایل تنظیمات آن را با end-point های مورد نیاز ایجاد کرد.

· اضافه کردن Service reference به client application.

· پیاده سازی کلاس ClientBase .

از میان روش های نام برده، آخرین گزینه بهترین روش می باشد. در صورت استفاده از دو روش دیگر، لازم است به ازای هر تغییری که در پیاده سازی Service اعمال می کنیم، یک کلاس proxy جدید ایجاد نمایید. اما پیاده سازی کلاس ClientBase ، کلاس proxy را در زمان اجرا ایجاد کرده و متعاقبا خود همه ی کارهای لازم را انجام می دهد.

برای این منظور یک کلاس proxy که حاوی فضاهای نام System.ServiceModel و MyCalculatorService می باشد ایجاد نمایید.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

using MyCalculatorService;

namespace MyCalculatorServiceProxy

{

  // WCF create proxy for ISimpleCalculator using ClientBase

  Public class MyCalculatorServiceProxy :

  ClientBase,

  ISimpleCalculator

  {

     Public int Add(int num1, int num2)

     {

        //Call base to do funtion

        returnbase.Channel.Add(num1, num2);

     }

  }

}

حال یک اپلیکیشن console ایجاد کنید که دربردارنده ی فضاهای نام System.ServiceModel و MyCalculatorServiceProxy (کلاس به آن ها ارجاع می دهد) می باشد.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

using MyCalculatorServiceProxy;

namespace MyCalculatorServiceClient

{

  classProgram

  {

     Static void Main(string[] args)

     {

        MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy();

        Console.WriteLine("Client is running at " + DateTime.Now.ToString());

        Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5));

        Console.ReadLine();

     }

  }

}

گام دوم –اطلاعات End-point نیز مانند service بایستی به فایل تنظیمات client application اضافه شوند.





  

     

           

          

     

  


گام سوم –پیش از راه اندازی client application، بایستی سرویس را اجرا کنید. در زیر خروجی اپلیکیشن به نمایش گذاشته شده است.

آموزش WCF

دسترسی و استفاده از سرویس میزبانی شده در WAS

استفاده از سرویس WCF که در WAS میزبانی شده یک فرایند ساده است که طی چند مرحله ی ساده برای شما توضیح خواهیم داد.

· کلاس proxy و فایل تنظیمات را به client application اضافه نمایید.

· یک شی از MathServiceClient ایجاد نموده و متد را فراخوانی کنید.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespaceWASHostedClient

{

  classProgram

  {

     staticvoid Main(string[] args)

     {

        MathServiceClient client = newMathServiceClient();

        Console.WriteLine("Sum of two number 5,6");

        Console.WriteLine(client.Add(5, 6));

        Console.ReadLine();

     }

  }

}

خروجی زیر به نمایش در می آید:

آموزش WCF

دسترسی و استفاده از سرویس میزبانی شده بر روی Windows Service

پس از اینکه سرویس با موفقیت مستقر (host) شد، می توانیم یک کلاس proxy برای تعامل با سرویس ایجاد کرده و از آن در client application استفاده کنیم. در مثال زیر، فرایند استفاده از سرویسی که درWindows service میزبانی شده را مشاهده می کنید.

آموزش WCF
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespaceWindowServiceClient

{

  classProgram

  {

     staticvoid Main(string[] args)

     {

        //Creating Proxy for the MyService

        MyServiceClient client = newMyServiceClient();

        Console.WriteLine("Client calling the service...");

        Console.WriteLine("Sum of two numbers 5,6");

        Console.WriteLine(client.Add(5, 6));

        Console.WriteLine("Subtraction of two numbers 6,5");

        Console.WriteLine(client.Add(6, 5));

        Console.WriteLine("Multiplication of two numbers 6,5");

        Console.WriteLine(client.Add(6, 5));

        Console.WriteLine("Division of two numbers 6,3");

        Console.WriteLine(client.Add(6, 3));

        Console.Read();

     }

  }

}

خروجی زیر را به دست می دهد:
آموزش WCF
1395/05/12 3302 4
نظرات شما

نظرات خود را ثبت کنید...