وقت بخیر دوستان، با آموزش برنامه نویسی (Visual Basic.NET (VB.NET از وب سایت پی وی لرن همراه هستیم. در بخش آخر مبحث برنامه نویسی وب، به مباحث ایجاد Service Contract و تعریف عملیات ، پیاده سازی Contract ، استفاده از Service و … می پردازیم.
یک service contrac عملیاتی را که یک سرویس انجام می دهد تعریف می کند. در برنامه WCF Service ، متوجه می شوید که دو فایل به طور خودکار در پوشه App_Code در Solution Explorer ایجاد می شود.
1 2 3 4 5 6 7 | Public Interface IService <OperationContract()> Function GetPrice(ByVal symbol As String) As Double <OperationContract()> Function GetName(ByVal symbol As String) As String End Interface |
در فایل Service.vb ، یک کلاس به نام Service پیدا خواهید کرد که Service Contract تعریف شده در رابط IService را اجرا می کند.
کد IService.vb را با کد زیر جایگزین کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ' NOTE: You can use the "Rename" command on the context menu to change the class name "Service" in code, svc and config file together. Public Class Service Implements IService Public Sub New() End Sub Dim stocks As String(,) = { {"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"} } Public Function GetPrice(ByVal symbol As String) As Double _ Implements IService.GetPrice Dim i As Integer 'it takes the symbol as parameter and returns price For i = 0 To i = stocks.GetLength(0) - 1 If (String.Compare(symbol, stocks(i, 0)) = 0) Then Return Convert.ToDouble(stocks(i, 2)) End If Next i Return 0 End Function Public Function GetName(ByVal symbol As String) As String _ Implements IService.GetName ' It takes the symbol as parameter and ' returns name of the stock Dim i As Integer For i = 0 To i = stocks.GetLength(0) - 1 If (String.Compare(symbol, stocks(i, 0)) = 0) Then Return stocks(i, 1) End If Next i Return "Stock Not Found" End Function End Class |
برای اجرای WCF Service، مراحل را انجام دهید. گزینه Debug → Start Debugging را از نوار منو انتخاب کنید. خروجی خواهد بود:
برای تست service operation ها ، بر روی نام عملیات از نمودار درخت در پن سمت چپ دابل کلیک کنید. یک تب جدید در پن سمت راست ظاهر می شود.
مقدار پارامترها را در قسمت Request پن سمت راست وارد کرده و روی دکمه “Invoke” کلیک کنید.
نمودار زیر نتیجه ی تست عملکرد GetPrice را نشان می دهد.
نمودار زیر نتیجه ی تست عملکرد GetName را نشان می دهد.
حال بگذارید یک صفحه پیش فرض ، فرم وب ASP.NET در همان solution اضافه کنیم که از WCF Service که اخیراً ایجاد کرده ایم استفاده خواهیم کرد.
مراحل زیر را انجام دهید.
1 2 3 4 5 6 7 8 9 10 | Partial Class _Default Inherits System.Web.UI.Page Protected Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Dim ser As ServiceReference1.ServiceClient = _ New ServiceReference1.ServiceClient Label2.Text = ser.GetPrice(TextBox1.Text).ToString() End Sub End Class |
وقتی کد بالا با استفاده از دکمه Start موجود در نوار ابزار Microsoft Visual Studio کامپایل و اجرا می شود، صفحه زیر در مرورگر باز می شود.
نمادی را وارد کرده و روی دکمه Get Price کلیک کنید.
ایجاد Service Contract و تعریف عملیات ، پیاده سازی Contract و مباحث دیگری را در بخش آخر برنامه نویسی وب و آموزش VB.net مورد بررسی قرار دادیم. امیدوارم مباجث مورد توجه قرار گرفته باشد. موفق باشید.