Ge'Radt
นาย จิรัฎฐ์ (ทินวัฒน์) พงษ์ทองเมือง

การสร้าง Web Service VB.net ติดต่อกับ Window App


บทความนี้จะกล่าวถึงการสร้าง เวบเซอร์วิสพื้นฐาน ติดต่อกับ window application ที่สร้างขึ้นมาเอง

กำลังดำเนินการ!

การสร้าง WebService

 img1.gifติดต่อกับ Windows Application


Abstract

 บทความนี้จะกล่าวถึงการสร้าง เวบเซอร์วิสพื้นฐาน ติดต่อกับ window application ที่สร้างขึ้นมาเอง
โดยทำเป็น โปรแกรมเครื่องคิดเลข อย่างง่าย  โดยมี GUI เป็น windows app และใช้ webservice เป็นตัวคำนวณ
โดยบทความนี้ จะเน้น concept เป็นสำคัญ ไม่ว่าจะเป็นการสร้าง wevservice การติดต่อถึง webservice
การPublish Webservice ให้ใช้ได้ใน IIS


ขอขอบคุณ อาจารย์ปรีชา  วงศ์หิรัญเดชา,อาจารย์สุภาภรณ์ กานต์สมเกียรติ ผู้ประสิทธิ์ประสาทวิชา

เขียนโดย นายทินวัฒน์ พงษ์ทองเมือง

07 January, 2008 09:45:07 PM


img4.gifความต้องการของระบบ

     -    Visual Studio.Net 2005
     -    IIS
     -    DotNetFramwork 1.1+

Structure Design

     -    ผู้ใช้ จะใช้ฟอร์มจาก windows app เรียกใช้ web service สำหรับคำนวณ แล้วนำผลลัพธ์ที่ได้ส่งกลับไปยัง ฟอร์ม ของ windows app อีกที เพื่อแสดงผลให้แก่ผู้ใช้ ดังรูป


เริ่มสร้าง Solution กันก่อน

01-create solution.png    1.    เปิดโปรแกรม Visual Studio.Net 2005

    2.    คลิกที่ Project.. ที่หลังคำว่า Create ดังรูป Recent Projects








 

   3.    คลิก Other Project Types - > Visual Studio Solutions
          จากนั้นคลิกเปลี่ยนชื่อที่ช่องName เป็น SolutionCalculator จากนั้นก็คลิก OK
 02-create solution.png

    4.    คลิกที่รูป Add NewSolution Folder สร้าง2 Folder ชื่อ WebService และ WinApp ดังรูป
 03-create solution.png


เริ่มสร้าง Webservice

1. คลิกขวาที่ Folder  WebService -> Add -> New Web Site...ดังรูป
 04-create solution.png

2. คลิกเลือก ASP.NET Web Service
05-create webservice.png
จากนั้นช่อง Location File system  ให้ใช้ xxx\SolutionCalculator\Webservice โดยพิมพ์เพิ่มเข้าไป ตามรูปเลย
06-create webservice.png

จากนั้นคลิก OK

3. ปรากฎรูปของกลุ่มไฟล์ WebService ใน Folder WebServiceดังรูป
07-create webservice.png

4.โค๊ดของไฟล์ Service.vb ให้เพิ่ม WebMethod ดังนี้

 'บวก
    <WebMethod()> _
    Public Function plus(ByVal a As Integer, ByVal b As Integer) As String
        Return a + b
    End Function
    'ลบ
    <WebMethod()> _
    Public Function minus(ByVal a As Integer, ByVal b As Integer) As String
        Return a - b
    End Function
    'คูณ
    <WebMethod()> _
    Public Function multiply(ByVal a As Integer, ByVal b As Integer) As String
        Return a * b
    End Function
    'หาร
    <WebMethod()> _
    Public Function divide(ByVal a As Integer, ByVal b As Integer) As String
        If b = 0 Then
            Return "ผิดพลาด"
        Else
            Return a / b
        End If
    End Function
 


ทดสอบ Webservice

1.คลิกปุ่ม  08-create webservice.png เพื่อดูผลรัน จะขึ้นหน้าต่างดังรูป คลิก OK ได้เลย
img6.jpg

2. จะปรากฎรูปของ Service  และ Method ต่างๆที่เราสร้างขึ้นดังรูป
สมมติเราจะทดสอบ Method  divide(การหาร) ว่าใช้งานได้หรือไม่  ก็คลิกที่คำว่า divide เลยคับ
09-create webservice.png

3. จากรูปเป็นการ นำ 60 หาร 12 ป้อนตัวเลขตามรูป  แล้วคลิก Invoke
10-create webservice.png

4.ผลลัพธ์ ที่ได้อยู่ในรูปของ XML  ซึ่งจะเห็นได้ว่ามี เลข 5 อยู่
ซึ่ง 60 หาร 12 เท่ากับ 5 จริง ลองทดสอบ method อื่นดูบ้าง ตามต้องการ
11-create webservice.png

5.เมื่อทดสอบแล้วได้ผลไ่่ม่ถูกต้อง ก็ต้องกลับไปแก้ใน webmethod ในcode ไฟล์ service.vb ใหม่
หากทดสอบผ่านหมด ถูกต้องแล้ว ก็จะเตรียมส่งไปเผยแพร่ (publish) ต่อไป


Publish Webservice ที่เครื่องเรา เพื่อให้เครื่องอื่นเรียกใช้

หัวข้อนี้สำคัญคือ ต้องมี IIS  ดังที่ได้กล่าวไปข้างต้น และ IIS ต้องสนับสนุนไฟล์ .asmx ด้วย นั่นคืออยู่ใน DotNetFramwork

1.คลิกขวาที่ Webservice ของเรา เลือก publish Web site
12-create webservice.png

2.เปลี่ยน Target เป็น http://localhost  จากนั้นคลิกOK ได้เลย
13-create webservice.png

3.ตอบ Yes ตามรูป เมื่อเสร็จสมบูรณ์จะมีคำว่า Publish Success ที่ status bar
14-create webservice.png

4.เข้าไปตรวจสอบใน IIS  ไปที่ Start-> Control Panel -> Administrative Tools -> Internet Information Services
คลิกที่ Default Web Site ดังรูป
จะมี Service เข้ามาใน IIS แล้ว โดยดูได้จากด้านขวา  Service ของเราจะชื่อ Service.asmx
 15-publish webservice.png

5.คลิกขวาที่ Default Web Site  เลือก Properties
 16-publish webservice.png

6.คลิกที่แทป Home Directory แล้วติ๊กถูกหน้า Directory Browsing
17-publish webservice.png

7.คลิกปุ่ม Stop Item แล้วคลิกปุ่ม start Item  จากนั้นก็ปิด IIS ได้เลย
18-publish webservice.png

8.เท่านี้ service ของเราก็ถูก publish ที่เครื่องเราเรียบร้อยแ้ล้ว    การเรียกดู Webservice ของเรา ก็เพียงเข้า IE แล้วพิมพ์ IP เครื่องเราลงไปแล้ว Enter(เช่น  http://192.168.0.2) ก็จะเห็น Service ของเราทันที เครื่องอื่น ก็สามารถ เรียกใช้ Service จากเครื่องเราได้ทันที  เป็นอันเสร็จสิ้น การสร้าง WebService


 สร้าง Windows Application

เพื่อเรียกใช้ Webservice จากเครื่องเพื่อน

1.คลิกขวาที่ Folder WinApp  เลือก Add - > New Project...
19-create winApp.png

2.คลิกตามรูปวงกลมสีแดง แล้วเปลี่ยน Name เป็น MyCal  ส่วน Location ให้เพิ่ม WinApp ดังภาพ
20-create winApp.png

3.จะได้Form มา  ให้ลากคอนโทรลมาวาง ดังรูป
เปลี่ยนที่ Properties Name ของแต่ละคอนโทรล ดังรูป
21-create winApp.png

4.เปลี่ยนที่ Properties Text ของแต่ละคอนโทรล ดังรูป
 22-create winApp.png

5.คลิกขวาที่ MyCal แล้วเลือก Add Web Reference
23-create winApp.png

6.ช่อง URL ให้พิมพ์ตามนี้  ส่วนหมายเลข  172.25.5.8 เปลี่ยนให้ตรงกับ IP เครื่องเพื่อนที่เราต้องการใช้ Service
24-create winApp.png

7.หาก URL ถูกต้องแล้ว ก็จะมีการพบ Service (1 Service Found) ดังรูป
ตรง Web reference name ให้ตั้งชื่อเป็น WebReference แล้วคลิกปุ่ม Add Reference
25-create winApp.png

8.ดับเบิ้ลคลิกแต่ละปุ่ม เพื่อใส่โค๊ดโปรแกรม
26-create winApp.png

 

โค๊ดโปรแกรมทั้งหมด

Public Class Mycalculator

    Dim ws As New WebReference.Service

    Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlus.Click

        Me.LbOperator.Text = "+"

        Me.txtResult.Text = ws.plus(Me.txtA.Text, Me.txtB.Text)

    End Sub

    Private Sub cmdMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinus.Click

        Me.LbOperator.Text = "-"

        Me.txtResult.Text = ws.minus(Me.txtA.Text, Me.txtB.Text)

    End Sub

    Private Sub cmdMultiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMultiply.Click

        Me.LbOperator.Text = "*"

        Me.txtResult.Text = ws.multiply(Me.txtA.Text, Me.txtB.Text)

    End Sub

    Private Sub cmdDivide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDivide.Click

        Me.LbOperator.Text = "/"

        Me.txtResult.Text = ws.divide(Me.txtA.Text, Me.txtB.Text)

    End Sub

End Class

9.ปิดโค๊ด vb จากนั้นคลิกขวาที่ MyCal เลือก Set as StartUp Project
27-create winApp.png

10.ทดสอบโปรแกรม
คลิกปุ่ม  08-create webservice.png เพื่อดูผลรัน

ตกแต่งฟอร์มตามต้องการ จะได้ผลลัพธ์ดังรูป

28-create winApp.png

29-create winApp.png

คำสำคัญ (Tags): #web service
หมายเลขบันทึก: 159001เขียนเมื่อ 13 มกราคม 2008 12:55 น. ()แก้ไขเมื่อ 6 กันยายน 2013 18:42 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (6)

ขอบคุณมากครับ น่าสนใจมาก แต่เสียดายรูปภาพประกอบบทความมันไม่ขึ้น ช่วย Up รูปภาพใหม่ได้ไม่ครับ ผมสนใจเรื่องนี่มากเลย

เห็นด้วยครับ ช่วยอัฟรูปภาพให้หน่อย

บทความน่าสนใจมากค่ะ พอดีจะใช้ทำโปรเจคด้วย แต่รูปไม่ขึ้น ช่วย Upload รูปใหม่ได้มั้ยค่ะ

พี่ครับผมทำโปรเจคเรื่องนี้อัปรูปขึ้นทีเถอะคับผมยังนึกภาพไม่ออก

ถือว่าสงสารเดกตาดำๆ

จะทำ web service ค่ะ ซึ่งอยู่งงอยู่ ไม่รู้จะเริ่มต้นยังไงดี

หาข้อมูลอยู่เรื่อยๆ มาเจอบทความนี้อธิบายเข้าใจง่ายดีค่ะ แต่เสียดายรูปไม่ขึ้น

อยากให้ช่วย upload รูปใส่ให้หน่อยจักขอบพระคุณ

ตัว webservice นี้ ผมก็เอาไปทำเกมส์ออนไลน์ส่งอาจารย์ด้วยคับ แหะๆ

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท