สมัครเรียนโทร. 085-350-7540 , 084-88-00-255 , ntprintf@gmail.com

Tutorial Web Programming

A01 JavaScript01 HelloWorld A02 JavaScript02 HelloWorld by Class A03 JavaScript03 Object A04 JavaScript04 Prototype A05 JavaScript05 Closure A06 NodeJS01 HelloWorld A07 npm01 Intro A08 React01 HelloWorld A09 AngularJS01 HelloWorld A10 VueJS01 HelloWorld A11 webpack01 Intro A12 ASPNET01 HelloWorld A13 Flask01 HelloWorld A14 Windows CommandLine A15 GoogleCloudPlatform Product A16 GoogleAppEngine01 HelloWorld A17 WhatIs01 WebServer A18 WhatIs02 API A19 WhatIs03 Linux A20 Linux CommandLine A21 Android01 HelloWorld A22 Android02 Gradle A23 Maven HelloWorld A24 Nancy HelloWorld A25 WhatIs04 Protocol A26 HowTo01 Install Ubuntu Desktop A27 HowTo02 Install WebServer on Ubuntu A28 HowTo Install PrestaShop with php8 A29 HowTo Install XAMPP on Ubuntu A30 HowTo Install WordPress on XAMPP on Ubuntu A31 React02 Create and Run React Application A32 React03 Simple Web Application - People Counter A33 React04 Simple Web Application - People Counter 2 A34 React05 Web Application - Dictionary A35 React06 Web Application - Multiple Pages A36 React07 Web Application - Multiple Pages with APIs A37 React08 Web Application - Calculator A38 React09 Web Application - SpO2 Tracker A39 React10 Web Application - Smart Parking A40 Create AWS EC2 instance A41 Create WebApp Using Django on EC2 A42 JavaScript06 Understanding JavaScript Loop A43 HowTo Install CKEditor5 on Your Website

A24_Nancy_HelloWorld

ในบทความก่อนๆหน้านี้ ถ้าท่านผู้อ่านยังจำได้ ผมเคยพูดถึง ASP.NET (A12_ASPNET01_HelloWorld) ซึ่งเป็น Web Framework ที่ใช้สร้างเว็บด้วย .NET ไปแล้ว ในบทความนี้ผมจะขอพาท่านผู้อ่านไปรู้จักอีกทางเลือกหนึ่งชื่อว่า Nancy ครับ

Nancy คืออะไร

Nancy เป็น open-source Web Framework ที่เบา ใช้สำหรับสร้าง HTTP based services บน .NET และ Mono โดยถูกออกแบบมาให้สามารถรองรับ request พวก DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH และใช้ Domain Specific Language (DSL) ที่เรียบง่ายในการคืน response ด้วยการพิมพ์โค้ดสั้นๆ

ประวัติ Nancy

Nancy ถูกพัฒนาโดย Andreas Håkansson, Steven Robbins และผู้สนับสนุนคนอื่นๆ Nancy เป็นส่วนหนึ่งของ NancyFx ซึ่งเป็น umbrella project ที่เก็บ component ทั้งหมดไว้ ผู้พัฒนา Nancy ได้รับแรงบันดาลใจมาจาก Sinatra ซึ่งเป็น framework สำหรับภาษา Ruby ดังนั้นพวกเขาจึงเลือกชื่อลูกสาวของ Frank Sinatra ที่ชื่อว่า Nancy มาใช้ ส่วน Fx หมายถึง framework 

ถ้าดูจากประวัติใน GitHub จะเห็นได้ว่า Nancy ถูก commit ขึ้น GitHub ครั้งแรกในช่วงปลายปี 2010 และได้รับการพัฒนาอย่างต่อเนื่องมาจนถึงปัจจุบัน ซึ่ง Nancy ได้รับการยอมรับในหมู่นักพัฒนาว่าเป็น framework ที่ดีและมีความเสถียรตัวหนึ่งครับ

Project Hello world

ในบทความนี้เราจะมาทดลองใช้ Nancy สร้างโปรเจกต์ Hello World กัน โดยเราจะลง Nancy ผ่าน Nuget ใน Visual Studio และเขียนด้วยภาษา C#

ต้องขอชี้แจงก่อนว่าผมคิดว่าผู้อ่านที่จะใช้ Nancy น่าจะมีพื้นฐานเขียนโปรแกรมกันอยู่แล้ว ดังนั้นผมจะขอไม่อธิบายเรื่องการติดตั้งโปรแกรมต่างๆหรือเรื่องอะไรที่เป็นความรู้พื้นฐานนะครับ

1. เปิด Visual Studio ขึ้นมา ถ้าใครยังไม่มีหรือมีแล้วแต่เป็นเวอร์ชันเก่าดึกดำบรรพ์ก็สามารถดาวน์โหลดเวอร์ชันใหม่ได้จาก https://visualstudio.microsoft.com/downloads/ หลังจากทำการติดตั้งเรียบร้อยแล้วให้สร้างโปรเจกต์ใหม่โดยไปที่เมนู File > New > Project...

2. จะมีหน้าต่าง New Project ปรากฏขึ้นมา ที่แถบด้านซ้ายเลือก Visual C# แล้วเลือก Console App (.NET Framework) จากนั้นตั้งชื่อโปรเจกต์ในตัวอย่างนี้ตั้งชื่อว่า HelloApp และเลือกที่เก็บโปรเจกต์ตามต้องการ แล้วกดปุ่ม OK
หมายเหตุ: ในตัวอย่างนี้ผมใช้ .NET เวอร์ชัน 4.6.1 ถ้าของใครเวอร์ชันเก่ากว่านี้แล้วทำตามตัวอย่างทั้งหมดแล้วไม่สำเร็จก็ขอให้อัปเดท .NET เป็นเวอร์ชันใหม่ก่อนแล้วทำตามตัวอย่างอีกทีนะครับ

3. รอสักครู่ เมื่อสร้างโปรเจกต์เสร็จ Visual Studio จะแสดงหน้าไฟล์ Program.cs ซึ่งมีโค้ดตั้งต้นให้ส่วนหนึ่งแล้ว เดี๋ยวต่อไปเราจะเขียนโปรแกรมที่ไฟล์นี้ครับ แต่ก่อนอื่นเราจะมาลง Nancy กันก่อน

4. ไปที่เมนู Project > Manage Nuget Packages…

5. จะปรากฏหน้า Nuget: HelloApp ขึ้นมา ให้เลือก tab Browse แล้วพิมพ์คำว่า nancy ที่ช่องค้นหา จากนั้นกด Enter

6. รอจนค้นหาเสร็จ ให้เลือก Nancy แล้วกดปุ่ม Install เพื่อติดตั้ง (ในตัวอย่างนี้ติดตั้งเวอร์ชัน 2.0.0 ถ้าติดตั้งคนละเวอร์ชันกันอาจะทำให้ไม่สามารถใช้โค้ดตามตัวอย่างนี้ได้นะครับ)

7. จะมีหน้าจอ Preview ขึ้นมาให้กด OK

8. รอจนติดตั้งเสร็จ ให้เลือก Nancy.Hosting.Self แล้วกดปุ่ม Install เพื่อติดตั้ง จากนั้นทำเหมือนขั้นตอน 7

9. หลังจากติดตั้งเสร็จแล้วก็ปิดหน้า Nuget: HelloApp ได้เลยครับ กลับมาที่หน้าไฟล์ Program.cs ให้เขียนโค้ดตามนี้แล้วกด save

using Nancy.Hosting.Self;
using System;
 
namespace HelloApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var hostConfigs = new HostConfiguration
            {
                UrlReservations = new UrlReservations() { CreateAutomatically = true }
            };
 
            Uri uri = new Uri("http://localhost:5000");
            NancyHost host = new NancyHost(hostConfigs, uri);
            host.Start();
            Console.WriteLine("Press enter to exit...");
            Console.ReadLine();
        }
    }
}

10. ทดลองรันโปรแกรมโดยกดปุ่ม Start ด้านบน หลังจากกดแล้วบางเครื่องอาจจะขึ้นเตือนว่าคอมพิวเตอร์มีการเปลี่ยนแปลง ไม่ต้องตกใจครับ ให้กดยอมรับหรือตกลงไป

11. หลังจากที่รันโปรแกรมและมีหน้าต่าง Console ขึ้นมาแล้ว ให้เปิด browser ขึ้นมาแล้วลองเข้าไปที่ http://localhost:5000 ดูครับ จะเห็นว่ามันขึ้นหน้า Nancy - 404 Not Found แบบในภาพประกอบ แสดงว่าทุกอย่างใช้ได้ไม่มีปัญหาครับ ถ้าไม่ขึ้นหรือรันโปรแกรมไม่ได้แสดงว่าการติดตั้ง Nancy ของเรามีปัญหา ขอให้ลองทำตามขั้นตอนที่ 4 - 8 อีกครั้งนะครับ

12. ตอนนี้เราจะมาทำหน้า Hello World กัน ก่อนอื่นให้หยุดรันโปรแกรมในขั้นตอนที่ 11 ก่อนโดยกดปุ่ม Stop แล้วสร้าง class ใหม่โดยการคลิกขวาที่ชื่อโปรเจกต์ในช่อง Solution Explorer แล้วเลือก Add > Class...

13. จะมีหน้าต่าง Add New Item ปรากฏขึ้นมา ให้เลือก Class แล้วตั้งชื่อไฟล์ ในตัวอย่างนี้ตั้งว่า HelloModule.cs จากนั้นกดปุ่ม Add

14. ไปที่หน้า HelloModule.cs แล้วเขียนโค้ดตามนี้

using Nancy;
 
namespace HelloApp
{
    public class HelloModule : NancyModule
    {
        public HelloModule()
        {
            Get("/", args => {
                return "Hello World";
            });
        }
    }
}

15. รันโปรแกรมโดยกดปุ่ม Start รอจนมีหน้าต่าง Console ขึ้นมา ให้เปิด browser แล้วลองเข้าไปที่ http://localhost:5000 อีกครั้ง คราวนี้จะเห็นว่าหน้าเว็บของเราแสดงข้อความ Hello World ได้อย่างถูกต้องแล้วครับ

 

เสร็จแล้วครับโปรเจกต์ Hello World ด้วย Nancy ของเรา ดูเหมือนขั้นตอนจะเยอะเพราะต้องติดตั้ง Nancy และต้องสร้าง class ด้วย แต่ว่าไม่ยากเกินไปใช่ไหมครับ? ถ้าอยากเรียนรู้เพิ่มเติมหรือลองทำอย่างอื่นเพิ่มเติมก็สามารถอ่านได้จาก document ใน [1] และตัวอย่างโค้ดใน [2] ซึ่งกลุ่มผู้พัฒนาเป็นผู้เขียนเอง ดังนั้นจึงมั่นใจได้ว่าครบถ้วนและถูกต้องแน่นอนครับ แต่ๆๆ ที่ต้องระวังคือตั้งแต่เวอร์ชัน 2.0.0 เป็นต้นไปมีวิธีการเขียนบางอย่างต่างไปจากเดิมดังนั้นต้องดูให้ดีว่าเราต้องเขียนแบบไหนนะครับ

ประโยชน์ของ Nancy ในแง่ธุรกิจ

แน่นอนครับว่ามันฟรีเพราะเป็น open-source เราสามารถใช้งานได้กับระบบปฏิบัติการอื่นไม่จำเป็นต้องใช้กับ Windows เท่านั้น ดังนั้นถ้าเราเอามันไปใช้กับ Linux เราก็จะไม่เสียค่าใช้จ่ายทั้งเรื่อง OS และ Software ครับ 

และจุดเด่นที่สุดที่ทำให้ Nancy ได้รับความนิยมคือคำสั่งที่สั้น กระชับ และมีความหมาย ในขณะที่มีความยืดหยุ่นพอให้เราได้สิ่งที่เราต้องการโดยการเขียนโค้ดนิดเดียวเมื่อเทียบกับ Framework อื่น นอกจากนี้ยังสามารถเริ่มใช้งานได้ง่ายๆโดยไม่จำเป็นต้องมีการตั้งค่าใดๆทั้งสิ้น ซึ่งสองอย่างนี้ช่วยให้ง่ายต่อการเรียนรู้และประหยัดเวลาไปได้มากครับ

พื้นฐานที่ควรมีก่อนเรียนรู้ Nancy

การใช้งาน Nancy ควรมีความรู้เรื่อง C# (หรือ VB.NET) และ Web Programming ครับ 

ถ้าผู้อ่านสนใจอยากเรียนรู้อย่างลึกซึ้ง นำไปใช้ต่อยอดได้จริง ก็ขอแนะนำคอร์สที่ดีที่สุดคุ้มที่สุดครอบคลุมที่สุดคือคอร์ส Web Programming PHP101-CS ของทาง EPT ครับ สามารถดูรายละเอียดคอร์สได้โดยคลิกที่นี่หรือติดต่อได้ที่ 085-350-7540

แล้วพบกันใหม่บทความหน้านะครับ 

 

ที่มาและเว็บไซต์อ้างอิง

[1] https://github.com/NancyFx/Nancy/wiki/Documentation
[2] https://github.com/NancyFx/Nancy

 



บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้

หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor

ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?

สมัครเรียน ONLINE ได้ทันทีที่ https://elearn.expert-programming-tutor.com

หรือติดต่อ

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM

แผนที่ ที่ตั้งของอาคารของเรา

C Article


C++ Article


Java Article


C#.NET Article


VB.NET Article


Python Article


Golang Article


JavaScript Article


Perl Article


Lua Article


Rust Article


Article


Python


Python Numpy


Python Machine Learning



แผนผังการเรียนเขียนโปรแกรม

Link อื่นๆ

Allow sites to save and read cookie data.
Cookies are small pieces of data created by sites you visit. They make your online experience easier by saving browsing information. We use cookies to improve your experience on our website. By browsing this website, you agree to our use of cookies.

Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com

ติดต่อเราได้ที่

085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา