การพัฒนาเว็บเซอร์วิสด้วย ms visual 2008 express...

14
การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET 1 การพัฒนาเว็บเซอรวิสดวย MS Visual 2008 Express Edition MS Visual 2008 Express Edition เปนเครื่องมือในการพัฒนาเว็บเซอรวิสโดยไมเสียคาใชจาย ซึ่งสามารถดาวนโหลด ไดทีhttp://www.microsoft.com/express/download/ ซึ่งปฏิบัติการครั้งนี้จะเปนการสรางและเรียกใชเว็บเซอรวิส อยางงาย คือ การสรางเว็บเซอรวิสการคํานวณ บวก ลบ คูณ หาร และการเรียกใชเซอรวิสที่สรางขึ้นมา หลังจากนั้นใหนิสิต ทดลองเขียนเว็บเซอรวิสเพื่อเรียกใชเซอรวิสของ ปตท. http://www.pttplc.com/TH/nc_oi.aspx การสรางเว็บเซอรวิส เปนการสรางเซอรวิสที่มีชื่อวา CalculatorServices ประกอบดวย operation 4 operations คือ Addition, Subtract, Multiply, and Divide 1. สรางเว็บไซตใหม ไปทีFile > New Web Site ที่หนาตาง Recent Project 2. เลือกเทมเพลต ASP.NET Web Services จากนั้นเลือกตําแหนงที่เก็บเอกสารโปรเจค โดยใหตั้งชื่อโปรเจคเปน รหัสนิสิตเก็บที่ไดรฟ D:\MS_รหัสนิสิต_WS และเลือกภาษาเปน Visual C# คลิก OK รูปที1 การสราง New Web Site 3. โปรแกรมจะทําการสรางสภาวะแวดลอมในการพัฒนาเว็บเซอรวิส และสรางไฟลเว็บเซอรวิสแรกขึ้นมา มีชื่อวา Services.cs และมี WebMethod มาให 1 ตัว คือ HelloWorld ที่เปน void มีการสงคากลับเปน “Hello World” และไฟลอื่นๆ 1 2 3 4

Upload: others

Post on 18-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 1 ‐ 

การพัฒนาเว็บเซอรวิสดวย MS Visual 2008 Express Edition 

 

MS Visual 2008 Express Edition เปนเคร่ืองมือในการพัฒนาเว็บเซอรวิสโดยไมเสียคาใชจาย ซึ่งสามารถดาวนโหลด

ไดที่ http://www.microsoft.com/express/download/  ซึ่งปฏิบัติการคร้ังนี้จะเปนการสรางและเรียกใชเว็บเซอรวิส

อยางงาย คือ การสรางเว็บเซอรวิสการคํานวณ บวก ลบ คูณ หาร และการเรียกใชเซอรวิสที่สรางขึ้นมา หลังจากนั้นใหนิสิต

ทดลองเขียนเว็บเซอรวิสเพื่อเรียกใชเซอรวิสของ ปตท. http://www.pttplc.com/TH/nc_oi.aspx 

การสรางเว็บเซอรวิส 

เปนการสรางเซอรวิสที่มีชื่อวา CalculatorServices ประกอบดวย operation  4 operations คือ Addition, 

Subtract, Multiply, and Divide 

1. สรางเว็บไซตใหม ไปที่ File > New Web Site ที่หนาตาง Recent Project 

2. เลือกเทมเพลต ASP.NET Web Services จากนั้นเลือกตําแหนงที่เก็บเอกสารโปรเจค โดยใหต้ังชื่อโปรเจคเปน

รหัสนิสิตเก็บที่ไดรฟ D:\MS_รหัสนิสิต_WS และเลือกภาษาเปน Visual C# คลิก OK 

 

รูปที่ 1 การสราง New Web Site 

3. โปรแกรมจะทําการสรางสภาวะแวดลอมในการพัฒนาเว็บเซอรวิส และสรางไฟลเว็บเซอรวิสแรกขึ้นมา มีชื่อวา

Services.cs และมี WebMethod มาให 1 ตัว คือ HelloWorld ที่เปน void มีการสงคากลับเปน “Hello 

World” และไฟลอื่นๆ 

1

34 

Page 2: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 2 ‐ 

 

รูปที่ 2 ไฟลตางๆที่โปรแกรมสรางขึ้นมาใหโดยอัตโนมัติ 

รูปที่ 3 WebMethod ของไฟล Services.cs 

4. ทดลองเรียกใชงานเว็บเซอรวิสโดยคลิกที่ Debug > Start Without Debugging (Ctrl+ F5) โดยไม

จําเปนตองติดต้ัง IIS Server 

 

รูปที่ 4 การ run เว็บเซอรวิส 

Page 3: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 3 ‐ 

 

รูปที่ 5 หนาเว็บที่เปดขึ้นมาแสดงลิงคของ operation และ เอกสาร WSDL 

5. คลิกลิงค Services Description เพื่อเปดดูเอกสาร WSDL โดยดูที่ 

1.1 Services  ทําใหทราบช่ือเซอรวิส และตําแหนงในการเรียกใชเซอรวิส (endpoint) 

รูปที่ 6 แสดงในสวนของ services element 

2.1 PortType ดูวาเซอรวิสมี operation อะไรบางที่เปดใหบริการ และมีการสง message อยางไร 

 

รูปที่ 7 แสดงในสวนของ PortType 

3.1 Message ดูสวนของ input และ output message ของ operation ที่เราสนใจรองขอเรียกใช

เซอรวิส ทําใหทราบลักษณะของ message ที่สงเขา – ออก 

2

Page 4: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 4 ‐ 

 

รูปที่ 8 แสดงในสวนของ message 

4.1 type เพื่อดูลักษณะโครงสรางของขอมูลที่ใชในการรับ – สง ของ operation ที่เราสนใจ 

 

รูปที่ 9 แสดงในสวนของ type 

5.1 biding รูปแบบของการ encode ขอมูล วาเปน rpc หรือ document 

 

Page 5: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 5 ‐ 

 

รูปที่ 10 แสดงในสวนของ binding 

6. ทดลองเรียกใชเซอรวิสโดยคลิกที่ลิงค HelloWorld ซึ่งแสดงในรูปที่ 5 จะแสดงผลลัพธดังรูป 

 

รูปที่ 11 ฟอรมที่ใชในการเรียกเซอรวิส HelloWorld 

Page 6: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 6 ‐ 

7. เม่ือคลิกปุม Invoke จะใหผลลัพธ ดังรูป 

 

รูปที่ 12 ผลลัพธในการเรียกเซอรวิส HelloWorld 

8. ปรับแกไขโคด HelloWorld โดยเพิ่ม operation Addition, Subtract, Multiply, and Divide ทุก

opeartion มีการรับ input  2 ตัว คื a และ b มีชนิดขอมูลเปน double และมีการสงคากลับ 1 คา มีชนิดขอมูล

เปน double 

[WebMethod] public double Addition(double a, double b) { return a + b; } [WebMethod] public double Subtract(double a, double b) { return a - b; } [WebMethod] public double Multiply(double a, double b) { return a * b; } [WebMethod] public double Divide(double a, double b) { return a / b; } 

9. ทําการ สรางเซอรวิส คลิกที่เมนู Build > Build Web Site และรันโปรเจคเพื่อดู operation ที่สรางขึ้นมา ไปที่

เมนู Debug > Start Without Debugging หรือ Ctrl + F5 

Page 7: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 7 ‐ 

10. ทดลองเรียก operation Addition โดย ใส input a : xx.xx และ iput b : xx.xx เปนตัวเลขท่ีตองการลงไป กด

ปุม Invoke 

 

รูปที่ 13 แบบฟอรมทดสอบการเรียกใชเซอรวิส operation Addition 

11. ปรับแกโคด โดยลบ operation HelloWord ทิ้ง แกไข Namespace และต้ังชื่อ Services ใหมเปน

"http://www.chanthaburi.buu.ac.th/Ms‐webservices",Name="CalculatorServices" ดังดานลาง 

[WebService(Namespace = "http://www.chanthaburi.buu.ac.th/Ms-web-services",Name="CalculatorServices")] 

ทําการ Build Web Site อีกคร้ังและรันเว็บเพื่อดูผลการเปล่ียนแปลง 

รูปที่ 13 แสดงชื่อเว็บเซอรวิสที่ถูกเปล่ียนแปลง 

12. คลิกดู Service Description   เพื่อดู namespace ที่เปล่ียน และ รายละเอียดของเอกสาร WSDL และ soap 

message เพื่อใชในการเรียกใชเว็บเซอรวิสในตอนตอไป 

Page 8: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 8 ‐ 

การเขียนโปรแกรมเพื่อเรียกใชเว็บเซอรวิส 

หัวขอนี้เปนการพัฒนาเว็บฟอรมที่ชื่อวา CalculationClient เพื่อเรียกใชเว็บเซอรวิส CalculatorServices 

1. เพิ่ม Item ของ web Form เพื่อเรียกใชเว็บเซอรวิส โดยคลิกขวาท่ีชื่อโปรเจค จาก Solution Explorer ที่

หนาตางดานขวา 

 

รูปที่ 14 การเพิ่ม Item 

2. ต้ังช่ือ Item เปน CalculationClient และคลิกที่ปุม Add 

 

รูปที่ 15 การกําหนด Item ของ web form CalculatorClient 

2

Page 9: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 9 ‐ 

3. เม่ือเพิ่ม Item เรียบรอย โปรแกรมจะทําการสรางไฟลชื่อวา CalculatorClient.aspx และเปนมุมมอง source 

ใหเปล่ียนเปนมุมมอง Design 

4. ปรับแก option ไปที่ Tools > Options และเลือกสวนของ CSS Styling และทําการแกไขดังรูป 

 

รูปที่ 16 การปรับ Options 

5. สรางฟอรมเพื่อรับ – สงขอมูลในการเรียกใชเว็บเซอรวิสดังรูป โดยใชเคร่ืองมือ Toolbox 

 

รูปที่ 17 ฟอรมในการเรียกใชเซอรวิส 

1

2

Page 10: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 10 ‐ 

6. กําหนด ID ใหกับ input แตละตัวที่หนาตาง Properties โดยกําหนดดังนี้ Input a:, Input b : และ Result มี

ID ดังนี้ a, b, and result ตามลําดับ และกําหนด ID ใหกับปุม Addition, Subtract, Multiply, and Divide 

ใหมีชื่อเดียวกับปุม 

 

รูปที่ 18 หนาตาง Properties และการกําหนด ID 

7. สราง Web Reference สําหรับอางอิงเซอรวิส โดยคลิกขวาท่ีชื่อโปรเจค เลือก Add Web Reference 

 

รูปที่ 19 การสราง Web Reference 

8. หลังจากนั้นจะปรากฏหนาตาง Add Reference โดยเราสามารถท่ีจะระบุที่อยูของเอกสาร WSDL URL ของ

เว็บเซอรวิสลงไป หรือคลิกลิงคที่ Browse to : Web Services in this solution  

Page 11: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 11 ‐ 

 

รูปที่ 20 หนาตาง Add Web Reference 

รูปที่ 20 เว็บเซอรวิสที่สามารถ Add Web Reference 

Page 12: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 12 ‐ 

9. ใสชื่อ cal_services ในชอง Web Reference name :  และคลิกปุม Add Reference เพื่อใหโปรแกรมสราง

สวนในการติดตอกับเว็บเซอรวิส ดังรูป 

รูปที่ 21 Add  Reference 

10. ปรับแกไขไฟล CalculatorClient.aspx เพื่อเรียกใชเว็บเซอรวิส โดยการดับเบิลคลิกที่ปุม Addition โปรแกรม

จะเปดไฟล CalculatorClient.aspx.cs และสรางเมธอดวางขึ้นมาใหทําการเพิ่มโคดดังขางลาง 

protected void Addition_Click(object sender, EventArgs e) { 

          } 

แกไขเปน 

protected void Addition_Click(object sender, EventArgs e) 

    { 

        cal_services.CalculatorServices cal = new cal_services.CalculatorServices(); 

        result.Text = cal.Addition(double.Parse(a.Text), double.Parse(b.Text)) + ""; 

    } 

1

2

Page 13: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 13 ‐ 

11. ทําการรันเว็บฟอรมที่สรางขึ้น โดยคลิกขวาท่ี CalculatorClient.aspx เลือก View in Browser ทดลองใส

input และคลิกปุม Addition เพื่อ ดูผลลัพธ 

 

รูปที่ 22 การรันเว็บฟอรมที่สรางขึ้น 

12. ทําการดับเบิลคลิกปุมอื่นๆ เพื่อแกไขโคดใหสามารถเรียกใชเว็บเซอรวิสใน operation ตางๆท่ีเปดใหใชบริการ

โดยแกไขโคดดังนี้ 

protected void Subtract_Click(object sender, EventArgs e) 

    { 

        cal_services.CalculatorServices cal = new cal_services.CalculatorServices(); 

        result.Text = cal.Subtract(double.Parse(a.Text), double.Parse(b.Text)) + ""; 

    } 

    protected void Multiply_Click(object sender, EventArgs e) 

    { 

        cal_services.CalculatorServices cal = new cal_services.CalculatorServices(); 

        result.Text = cal.Multiply(double.Parse(a.Text), double.Parse(b.Text)) + ""; 

    } 

    protected void Divide_Click(object sender, EventArgs e) 

    { 

        cal_services.CalculatorServices cal = new cal_services.CalculatorServices(); 

        result.Text = cal.Divide(double.Parse(a.Text), double.Parse(b.Text)) + ""; 

    } 

Page 14: การพัฒนาเว็บเซอร์วิสด้วย MS Visual 2008 Express Editionsirisuda/290371/Develop_MS Visual 2008 Express Edition.pdfทดลองเรียก

การสรางและการเรียกใชเว็บเซอรวิสโดยใช ASP.NET    ‐ 14 ‐ 

13. ทําการรันและทดสอบผลลัพธโดยการคลิกปุมตางๆ 

 

รูปที่ 23 ผลลัพธที่ไดจากปุม Multiply 

 

เอกสารอางอิง  

1. http://gear.kku.ac.th/~krunapon/courses/178375/ เขาถึงเม่ือวันที่ 17 มกราคม 2552