หน้าเว็บ

วันพุธที่ 31 ตุลาคม พ.ศ. 2561

[Tutorial] สร้าง Web Service ด้วย C# Part 4 : Public Web Service บน Azure

ผลการค้นหารูปภาพสำหรับ azure

    การ Publish Web Service ขึ้น Azure นั้น ให้ทำการกด Publish Web App แล้วกดเลือกกลับมาที่หน้า Profile ก่อนครับ จากนั้นก็ทำการเลือก Publish Target เป็น Microsoft Azure App Service



    จากนั้นก็ทำการ Sign In ด้วย Email ที่เราได้สมัคร Azure for Student ไว้ใน Part 0 เสร็จแล้วก็จะเข้าสู่หน้า App Service จะเป็นว่า Subscription จะเป็น Microsoft Imagine หรืออาจจะเป็น Azure for Student ถัดมาในส่วนของช่องด้านล่างซึ่งเป็น Service ที่เคยสร้าง(ดูในมุมมองของ Resource Group) สำหรับคนที่เพิ่งเคยใช้จะไม่มีอะไรอยู่ จึงต้องกดที่ New เพื่อสร้างใหม่ก่อน




    ในหน้า Create App Service ให้ตั้งชื่อ App Name ที่ไม่ซ้ำกับผู้ใช้ Azure คนอื่นบนโลก เนื่องจากจะต้องไปเป็น Url ของ Web Service จากนั้นกด New.. ที่ Resource Group เพื่อตั้งชื่อ(สร้าง)ใหม่ หรือจะใช้ชื่อเดิมที่ตั้งมา default เลยก็ได้ ในที่นี้จะสร้างใหม่เป็น MyService ส่วน Hosting Plan ก็ให้กด New.. เช่นกัน เพื่อเปลี่ยน Location เป็น เอเชียตะวันออกเฉียงใต้ และ Size เป็นแบบ Free ส่วนชื่อ Plan จะเปลี่ยนหรือไม่เปลี่ยนก็ได้ จากนั้นก็ทำการกด Create ได้เลย




    หลังจากกด Create และรอจน Deploy เสร็จแล้วก็จะมาที่หน้าการตั้งค่า Connection ในหน้านี้ให้เราเพิ่ม /WebService.asmx ต่อท้ายในช่อง Destination URL จากนั้นก็กด Validate Connection เพื่อทดสอบความถูกต้องดู หากถูกต้องแล้วก็กด Publish ได้เลย หรือจะเข้าไปดูในส่วนของ Preview ก่อนก็ได้ เท่านี้เราก็จะได้ Web Service ที่อยู่บน Cloud ของ Azure เรียบร้อยแล้ว หากมีการแก้ไข Web Service ก็ให้ทำการ Publish อีกรอบเช่นเดียวกับในส่วนของ Local Network ครับ





สารบัญ Tutorial สร้าง Web Service ด้วย C#

[Tutorial] สร้าง Web Service ด้วย C# Part 3 : Public Web Service บน Local Network


    การ Public Web Service ให้สามารถใช้งานบน Local Network ได้นั้น เราจะใช้ Microsoft IIS ที่ได้ทำการเปิดใช้งานใน Part 0 ไป



    เมื่อเปิดโปรแกรม IIS ขึ้นมา ในแถบ Connections ทางด้านซ้ายส่วนของ Sites จะมี Default Web Site อยู่ แต่เราจะทำการสร้าง site ใหม่สำหรับ Web Service โดยการกดคลิกขวาในแถบ Connections แล้วกด Add Website... ก็จะขึ้นหน้าต่าง Add Website ขึ้นมา




    ให้กรอกข้อมูลให้เรียบร้อย ชื่อของ Website, Directory ของ Website(แนะนำให้สร้างโฟลเดอร์ใหม่)  ส่วน IP Address สามารถที่จะตั้งเป็น IPv4, IPv6 หรือ All Unassigned (เข้าได้ทั้ง IPv4,IPv6 และ Localhost) ส่วน hostname ไม่จำเป็นต้องใส่ก็ได้ครับ จากนั้นก็กด OK ก็จะได้ Website ใหม่เพิ่มขึ้นมา





    หลังจากเตรียม Website ใน IIS เรียบร้อยแล้ว ทีนี้ก็มา Visual Studio โดยให้เปิดแบบ Run as Administrator



    ทำการเปิด Project ที่ได้สร้างเอาไว้ จากนั้นในแถบ solution explorer คลิกขวา >> Publish Web App



    เมื่อขึ้นหน้าต่าง Publish มา ให้เราเลือก publish target เป็น custom และตั้งชื่อ profile ให้เรียบร้อย




    เมื่อกด ok ก็จะเข้าสู่หน้าการตั้งค่า Connection ซึ่งจะตั้งค่าตามนี้
  • Server จะใส่เป็น localhost (ในกรณีที่จะใส่เป็น ip จะต้องมีการตั้ง username และ password)
  • Site name ให้ใส่ชื่อ Website ที่เราสร้างไว้ใน IIS ตามด้วย /ชื่อแอป (ชื่อแอปจะตั้งอะไรก็ได้ ไม่จำเป็นต้องตามชื่อโปรเจค)
  • Destination URL ให้ใส่ IP และ Port ตามที่ตั้งไว้ใน IIS ซึ่งเราได้ตั้งไว้เป็น All Unassigned ในที่นี้จึงขอใส่เป็น IPv4 จากนั้นให้ตามด้วย /ชื่อแอป ชื่อเดียวกับที่ใส่ในช่อง Site name และก็แนะนำให้ใส่ /WebService.asmx (หรืออาจจะชื่ออื่น ตามที่ได้ตั้งไว้) ต่อท้ายไปด้วย เพื่อให้หลังจาก Publish แล้วตัว Visual Studio จะได้ Redirect ไปที่หน้าเว็บ Web Service เลย
  • ทำการกด Validate Connection ตรวจเช็คดู หากไม่มีอะไรผิดพลาดก็จะขึ้นเครื่องถูกต้องสีเขียวมา
    จากนั้นเราสามารถที่จะกด Publish ได้เลย เนื่องจากในส่วนของ Setting ไม่มีตั้งแก้ไขการตั้งค่าอะไร หรือกดไปดูส่วนของ Preview ก่อนก็ได้ ซึ่งก็จะเป็นส่วนที่ Preview ดูสถานะของไฟล์ใน Server ซึ่งเราเพิ่ง Publish ครั้งแรก Action ของไฟล์จึงเป็นการ Add ทั้งหมดเข้าไป




    หลังจากกด Publish แล้วเราก็จะได้ Web Server ที่เป็น IP Address สามารถเข้าถึงได้ภายใน Local Network



   หากมีการแก้ไข Web Service เมื่อแก้ไขเสร็จแล้วต้องทำการ Publish ใหม่อีกครั้งด้วย แต่ไม่ต้องตั้งค่าอะไรใหม่ ซึ่งเมื่อเรากด Publish Web App ก็จะขึ้นหน้าต่าง Publish ในส่วน Preview มาให้เลย ในที่นี้ได้ทำการลบ Method SayHello ไป จะเป็นว่าใน Preview แสดงว่าไฟล์ WebService.cs มีการ Update เมื่อกดปุ่ม Publish หน้าเว็บ Web Service ก็จะได้รับการปรับปรุงเรียบร้อย




    ในพาร์ทต่อไปก็จะพูดถึงการ Public Web Service ขึ้นไว้บนบริการ Cloud อย่าง Azure ครับ



สารบัญ Tutorial สร้าง Web Service ด้วย C#

[Tutorial] สร้าง Web Service ด้วย C# Part 2 : ทดสอบ Web Service ด้วย SoapUI

    จาก Part ที่แล้ว เราได้ทำการสร้าง Web Service ไปแล้ว คราวนี้ก็จะทำการทดสอบกันด้วยโปรแกรม SoapUI ที่ได้โหลดเตรียมเอาไว้



    ขั้นตอนแรกให้ทำการเพิ่ม Service เข้าไปในตัวโปรแกรมก่อน โดยการกดที่ปุ่ม SOAP แล้วจะมีหน้าต่าง New Soap Project เด้งขึ้นมา ให้นำลิงค์ของ WSDL หรือ Service Description ใส่ลงไปแล้วกด OK



    หลังจากกด OK เราจะได้โปรเจคที่ WebService มา ภายในจะประกอบด้วย WebServiceSoap และ WebServiceSoap12 (Soap ver. 1.2) ซึ่งเราสามารถทดสอบกับตัวไหนก็ได้ โดยภายในทั้งสองตัวนี้ก็จะมี HelloWorld กับ SayHello ที่เป็น Method ที่เราสร้างไว้ ในแต่ละ Method ก็จะมี Request ที่ใช้เรียกใช้ Method นั้นๆของ Web Service นั่นเอง ซึ่งเราจะทำการทดสอบ Hello World กันก่อน ก็ให้ดับเบิ้ลคลิกที่ Request ของ Method Hello World ก็จะมีหน้าต่าง Request เด้งขึ้นมา




    จากรูปนั้นทางด้านซ้ายจะเป็น XML ที่ส่งไปให้ทาง Server เมื่อเราทำการ Submit Request (สามารถกด alt+enter ได้) ก็จะปรากฏ XML ที่ทาง Server Response กลับมาทางด้านขวาครับ ในที่นี้ก็จะเป็นการส่ง <HelloWorldResult>Hello World</HelloWorldResult> กลับมานั่นเอง



    จากนั้นก็ทดสอบอีก Method นีง ซึ่งก็คือ SayHello




    จากรูป เนื่องจาก Method SayHello เป็น Method ที่มี Input รับค่าชื่อเข้าไป จึงมี <tem:name>?</tem:name> โผล่ขึ้นมาตรงฝั่ง Request โดยที่ ? คือส่วนที่ให้เราใส่ input ลง ในที่นี้ก็จะใส่ชื่อวิชานี้ลงไปนะครับ


 
    พอทำการ Submit Request แล้ว ผลลัพธ์ที่ได้ก็จะได้ออกมาเป็น <SayHelloResult>Hello, Selected Topic</SayHelloResult> ตรงตามที่เราได้เขียนโปรแกรมไว้ให้ Method Return คำว่า Hello, ตามด้วย input ที่ใส่เข้าไปครับ




        ในพาร์ทต่อไปก็จะพูดถึงการ Public Web Service ที่สร้างไว้ให้สามารถใช้บน Local Network ได้ครับ


สารบัญ Tutorial สร้าง Web Service ด้วย C#

วันอังคารที่ 30 ตุลาคม พ.ศ. 2561

[Tutorial] สร้าง Web Service ด้วย C# Part 1 : สร้าง Web Service ด้วย Visual Studio

    จาก Part ที่แล้ว หลังจากที่ได้เตรียมความพร้อมกันเรียบร้อยแล้ว ก็จะมาเริ่มสร้าง Web Service กัน ซึ่งขั้นตอนแรกเราจะทำการสร้าง project กันก่อน โดยให้เข้าไปที่ File >> New Project... หรือจะกด Ctrl+Shift+N ก็ได้



    หน้าต่าง New Project ก็จะโผล่ขึ้นมา ก็ให้เลือกที่ Visual C# >> Web >> Previous Versions เพื่อที่จะเลือก ASP.NET Empty Web Site ครับ ทำการตั้งชื่อโปรเจค แล้วกด ok เราก็จะได้ตัวโปรเจคเว็ปไซต์เปล่าๆมาครับ




    ต่อมาก็ต้องเพิ่มไฟล์ที่ใช้สำหรับสร้าง Web Service โดยการ คลิกขวาที่ชื่อโปรเจคในช่อง Solution Explorer ทางด้านขวา แล้วก็ Add >> Add New Item... หรือกด Ctrl+Shift+A ก็ได้ครับ



    จากนั้นเมื่อขึ้นหน้าต่าง Add New Item มาแล้วก็ให้เลื่อนหาตัว Web Service (ASMX) ครับ จากนั้นก็ตั้งชื่อ(ลงท้ายด้วย .asmx) แล้วก็กด OK ในที่นี้ผมจะใช้ชื่อที่เขาตั้งมาให้เลย ก็คือ WebService.asmx นะครับ



    หลังจากกด ok มาแล้ว ก็จะได้ไฟล์เพิ่มมาสองไฟล์ นั่นก็คือ WebService.cs และ WebService.asmx ซึ่งก็จะชื่อตามที่เราได้ตั้งไปข้างบน ส่วนทั้งสองไฟล์นี้คืออะไรบ้าง
  • WebService.cs ใช้สร้าง Web Method หรือ Operation ต่างๆให้ Web Service
  • WebService.asmx ทำการนำโค้ดจาก WebService.cs ไปทำการสร้าง WSDL และหน้าเว็บให้อัตโนมัติ ซึ่งในไฟล์นนี้เราไม่จำเป็นต้องเข้าไปยุ่งอะไรกับมัน


    ภายในไฟล์ WebService.cs นั้นจะมีโค้ดเบื้องต้นมาให้ และ method 1 ตัวก็คือ HelloWorld จะเห็นว่าด้านบนของ Method นั้นจะมี [WebMethod] อยู่ ซึ่งตัวนี้เป็นตัวสำคัญที่จะคอยบอกว่าจะให้ Method เป็น Method ของ Web Service ครับ หาไม่ใส่ [WebMethod] ไว้ก็จะไม่สามารถเรียก Method นั้นผ่าน Web Service ได้



    เมื่อทำการทดสอบรันดูก็จะได้หน้าเว็บที่แสดงรายชื่อ Method ออกมา ซึ่งก็จะเห็นชื่อ Method HelloWorld อยู่ และเมื่อเข้าไปที่ลิงค์ Service Description ก็จะเป็นไฟล์ WSDL ที่ถูกสร้างขึ้นมาโดยอัตโนมัติครับ



    ทีนี้ผมก็จะเพิ่ม Method SayHello กับ NotShow เข้าไป แล้วทำการรันดูอีกครั้ง ก็จะเห็นว่ามี Method SayHello เพิ่มเข้ามา แต่ไม่มี NotShow เนื่องจากไม่ได้ใส่ [WebMethod] เอาไว้ครับ



    ในพาร์ทต่อไปก็จะพูดถึงการใช้ SoapUI มาทดสอบ Web Service ที่ได้สร้างไปกันครับ



สารบัญ Tutorial สร้าง Web Service ด้วย C#

วันเสาร์ที่ 27 ตุลาคม พ.ศ. 2561

[Tutorial] สร้าง Web Service ด้วย C# Part 0 : เตรียมความพร้อม

ก่อนที่จะเริ่มสร้าง Web Service ด้วย C# ก็จะพูดถึงการเตรียมความพร้อมด้านต่างๆก่อนนะครับ
  • ติดตั้ง Visual Studio Community 2017
  • ติดตั้ง SoapUI 
  • ใช้เครื่องตัวเองเป็น Server : เปิดการใช้งาน Microsort IIS (Internet Information Service)
  • ใช้ Server บน Cloud : สมัคร Azure for Student

ติดตั้ง Visual Studio Community 2017



    ทำการโหลดตัวติดตั้งจาก https://visualstudio.microsoft.com/downloads/ โดยโหลดรุ่น Community ซึ่งเป็นตัวฟรีและติดตั้งให้เรียบร้อย



    โดยปกติแล้วเมื่อทำการติดตั้งเสร็จแล้ว ก็จะขึ้นหน้าต่าง Visual Studio Installer ที่เป็นหน้า Modify มาแบบนี้ ให้ทำการติดตั้งทั้ง 2 ตัวในกรอบสีแดงให้เรียบร้อยครับ แต่ถ้าหากเผลอปิดตัว Installer ไป ก็สามารถเปิดได้จากตัวโปรแกรม Visual Studio ได้โดยเข้าที่ Tools >> Get Tools and Features... หรือจะค้นหาจาก Windows Search ก็ได้


**** สิ่งสำคัญ : ขณะติดตั้ง Package หรืออัพเดทตัวโปรแกรมต้องปิด Visual Studio ก็ ให้เปิดแค่ตัว Installer เท่านั้น ****




ติดตั้ง SoapUI


ผลการค้นหารูปภาพสำหรับ soap ui

    SoapUI เป็นโปรแกรม Open Source ที่เอาไว้สำหรับทดสอบ Web Service โดยที่ไม่ต้องเขียนโปรแกรม ซึ่งจะทำให้ช่วยลดความยุ่งยาก และประหยัดเวลาในการทดสอบลง สามารถ Download ได้ที่ https://www.soapui.org/


ใช้เครื่องตัวเองเป็น Server : เปิดการใช้งาน Microsort IIS (Internet Information Service)

    ในตัวโปรแกรม Visual Studio นั้นเวลา Run เพื่อทดสอบ Web Service จะได้เป็น localhost เท่านั้นไม่สามารถแก้เป็น ip address ได้ กรณีที่จะใช้เครื่องตัวเองเป็น Server จะต้องใช้ Microsoft IIS มาเป็นตัวช่วย
    IIS (Internet Information Service) เป็นโปรแกรมที่จะทำให้เครื่องคอมพิวเตอร์ของเราเป็นเครื่องเว็บ Server ถูกพัฒนาขึ้นมาโดย Microsoft ซึ่งปกติแล้วจะมีมาพร้อมกับ windows แต่ไม่ได้ถูกเปิดใช้งานเอาไว้โดยเริ่มต้น วิธีการเปิดใช้งานก็คือ

    ให้เปิด Control Panel >> Program and Features จากนั้นคลิกที่ Turn Windows features on or off
ซึ่งอยู่ทางเมนูด้านซ้าย แล้วทำการคลิกเลือกที่ Internet Information Service หนึ่งครั้ง


    ถัดมาให้เข้าไปที่ Internet Infomation Service >> World Wide Web Services >> Application Development Features  แล้วทำการคลิกเลือก ASP ทั้งหมด 3 ตัว จากนั้นกด ok


ระบบจะทำการประมวลผลเพื่อเปิดใช้งาน IIS สักครู่ พอเสร็จแล้วเครื่องคอมพิวเตอร์ของเราก็จะสามารถใช้ IIS ได้


    โดยปกติแล้ว หากติดตั้ง ASP ก็จะมีการปลดล็อก webServer/handlers และ webServer/modules แต่บางทีก็ไม่ได้ปลดล็อกให้ ดังนั้นเพื่อความแน่ใจจึงควรใช้คำสั่งปลดล็อกเองอีกที โดยการเปิด cmd แบบ Run as Administrator แล้วใช้คำสั่ง

%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules

   
    เท่านี้ก็เป็นอันเสร็จสิ้น


ใช้ Server บน Cloud : สมัคร Azure for Student

    สำหรับนักศึกษามจพ.สามารถที่จะใช้ Azure for Student ได้ฟรีๆ ซึ่งวิธีการสมัครใช้งานนั้นสามารถทำตามวิธีในลิงค์นี้ได้เลยครับ https://medium.com/@thebraveyongyee/วิธีสมัครazure-for-student-ฉบับไม่ต้องพึ่งรหัสจากimagine-4af07663d6a9



สารบัญ Tutorial สร้าง Web Service ด้วย C#