ความเดิมตอนที่แล้วเรื่อง JavaScript จะครองโลกแล้วหรือ ? ทิ้งคำถามไว้ว่า เราควรจะใช้ Framework  ไหนดี? จะย้ายมาเป็นสาวก JavaScript เลยดีมั้ย? ส่วนตัวตอนนี้ตัดสินใจว่าจะศึกษาและใช้งาน ASP.net core อย่างจริงจัง บล็อคนี้เลยจะมาอธิบายให้ฟังว่าทำไมถึงสนใจตัวนี้

มีวันนี้เพราะ ASP ให้

ย้อนกลับไปประมาณ 20 ปี ได้รู้จักกับเทคโนโลยี ASP ครั้งแรกในช่วงที่กำลังทำโปรเจคปี 4 โดย อ.ที่ปรึกษาได้มอบโจทย์สุดหินในสมัยนั้น คือ ให้พัฒนา Web application ติดต่อฐานข้อมูล Oracle อ.ซื้อหนังสือหนังสือปกแดง ๆ มาให้ 1 เล่ม ชื่อ Beginning Active Server Page (ฉบับภาษาอังกฤษ)

51bxapeywhl-_sx258_bo1204203200_
สมัยนั้นสายโปรแกรมเมอร์ต้องสำนักพิมพ์ Wrox (รูปจาก amazon.com)

จากที่ไม่เคยรู้จักว่า DBMS คืออะไร ภาษา SQL มีไว้ทำไม Oracle Database ต่างกับ Access ยังงัยก็ไม่รู้ Web application ก็ไม่เคยเขียน อ่านภาษาอังกฤษก็แปลผิด ๆ ถูก ๆ หาข้อมูลวิธีการใช้งานยาก (มีน้อยมากกก คือตอนนั้นยังไม่มี Google งัย พูดแล้วรู้สึกแก่เลย) จนแล้วจนรอดก็สามารถใช้งาน ASP ได้ และได้ใช้เป็นเครื่องมือทำมาหากิน ทำให้ได้งานและได้ขายวิญญาณให้ Microsoft ตั้งแต่นั้นเป็นต้นมา 555

ASP.net ในอดีต

ก่อนจะถึงยุคของ JavaScript …  ASP.net จัดว่าเป็นเครื่องมือพัฒนาเว็บที่โด่งดังและขึ้นชื่อในเรื่องของความง่ายในการพัฒนา แค่ ลาก ๆ วาง ๆ คลิก ๆ เราก็ได้เว็บที่ติดต่อฐานข้อมูลหรือสร้างเว็บเซอร์วิสแบบง่าย ๆ ได้แล้ว การทำงานภายใต้ .NET Framework ยิ่งทำให้ ASP.net มีความสามารถเพิ่มมากขึ้น บวกกับการมีภาษาดีอย่าง C# ให้ใช้ก็ยิ่งทำให้ ASP.net เป็นเทคโนโลยีที่น่าใช้เข้าไปอีก (ดูดีไฮโซเนอะ) แต่ในความเป็นจริง ASP.net กลับไม่ใช่เทคโนโลยีด้าน Server-side ที่นิยมที่สุดในยุคนั้น กลับกลายเป็น PHP ที่วิ่งแรงแซงหน้าไปซะงั้น สาเหตุที่คนส่วนหนึ่งไม่เลือกใช้ ASP.net ทั้ง ๆ ที่มันใช้ง่ายแสนง่ายและมีความสามารถมากมายคือ

ASP.net เป็นเทคโนโลยีที่ใช้สำหรับองค์กร บริษัทใหญ่ ๆ ที่มีเงินซื้ออุปกรณ์ในการพัฒนา

  • ไม่ฟรี!!! ตอนทดลองพัฒนาจะมีอุปกรณ์ให้ใช้ฟรี แต่พอจะใช้งานจริงจรังยังงัย ๆ ก็ต้องซื้อทั้ง IDE ทั้ง Window Server เหมือนกับว่าถ้าเรามาทางนี้ก็จะตกเป็นทาส Microsoft ตลอดไป จะถูกบังคับใช้  .net + SQL Server + IIS + Windows Server ทันที เทียบกับฝั่ง PHP แล้ว ทางนั้นจะมีอิสระเสรี ทุกอย่างฟรี จะเอาไปใช้บน Windows หรือ Linux ก็ได้ไม่มีปัญหาเลยมีคนใช้มากมายจนถึงปัจจุบัน
  • Visual เกินไป ปัญหาอีกอย่างหนึ่งของ net คือเครื่องมือพัฒนาที่มีคำว่า Visual (เช่น Visual Studio) ถูกออกแบบมาให้ใช้งานง่ายจนผู้ใช้ไม่ได้สนใจว่าการทำงานเบื้องหลังเป็นยังงัย ทำให้บางครั้งไม่สามารถแก้ปัญหาหรือปรับแต่งให้โปรแกรมที่เขียนมีประสิทธิภาพสูงขึ้นได้ กลายเป็น ASP.net ทำงานช้าใช้ทรัพยากรเยอะ อะไรแบบนั้น
  • ทุกอย่างผู้ติดกับ Microsoft Technology เนื่องจากมันเกิดมาเป็นลูกของ Microsoft เลยทำให้ต้องทำงานกับลูก ๆ คนอื่นของ Microsoft เท่านั้น Web server ต้อง IIS จะให้เข้ากัน 100% ก็ต้อง SQL Server เลยทำให้ตัวเลือกในการพัฒนามีน้อย สมมุติมี Web server ทีดีกว่า IIS ก็ใช้งานไม่ได้เป็นต้น

จากประเด็นพวกนี้เลยทำให้ ASP.net เป็นเทคโนโลยีที่ใช้สำหรับองค์กร บริษัทใหญ่ ๆ ที่มีเงินซื้ออุปกรณ์ในการพัฒนา แต่ถ้าเป็นบริษัทเล็ก เช่น Startup หรือเป็น Freelance ที่รับงานเป็นโปรเจค ก็ใช้หันไปใช้ PHP หรือเทคโนโลยีที่เป็น Open Source กันซะมากกว่า

.NET Core

dotnetcore

หลังจากลองศึกษา JavaScript Framework อยู่พักนึงกำลังจะตัดสินใจเรียนรู้ JavaScript อย่างจริงจังอยู่แล้ว จู่ ๆ ก็รู้สึกคิดถึง ASP.net ขึ้นมาเลยแอบแวะไปดูว่าเขาทำอะไรไปถึงไหนแล้ว ปรากฎว่า…นี่มัน…ใช่เลย…ภาพเก่า ๆ ของ ASP.net ที่เราเคยเห็นกำลังเปลี่ยนไป เพราะว่า …. Microsoft แยก .NET Framework เวอร์ชันล่าสุดออกเป็นสองชุดคือ .NET Framework 4.6.x ที่เหมือนของเดิม (Windows only) กับ .NET Core ที่เป็นของใหม่เอี่ยมและเป็น Open source ทำงานได้ทั้งบน Windows, Linux และ Mac ใช่แล้ว!! เราไม่ได้ฝันไป Microsoft.NET กลายเป็น Open source ที่ใช้ได้หลาย platforms ในชื่อว่า .NET Core!!!

ASP.net ได้กลายเป็น Open Source Web Framework เต็มตัว

Concept ของ .NET Core ที่โฆษณาไว้คือ

  • Cross-platform
    โปรแกรมที่เขียนด้วย .NET Core สามารถใช้งานบน Windows, Linux and macOS ก็ได้ จริง ๆ แล้วก็คือการสร้าง .NET Core SDK ให้กับ platforms อื่น ๆ ด้วยนั่นเอง (แบบเดียวกับ Java)
  • Unified
    พอมี .NET Core SDK ให้กับทุก platforms ทำให้การเขียน code ก็เขียนแบบเดียวกันได้หรือเรียกว่า  unified นั่นเอง นอกจากนั้นก็มีการแจก Visual Studio CODE ซึ่งเป็น Editor ที่มีสำหรับทุก platform ในแนว in-trend แบบที่ developer สมัยนี้ชอบกันคือ Text Editor + Command line ไม่เน้น Visual สำหรับสาย Visual ก็ไม่ต้องน้อยใจมี Visual Studio 2015 (กำลังจะออก 2017) เวอร์ชัน Community ให้ใช้แบบ ลาก ๆ วาง ๆ เหมือนเดิม เพิ่มเติมคือมีสำหรับ Mac ด้วยนะจ๊ะในนาม Visual Studio for Mac
  • Fast
    เขาโฆษณาว่าเร็วนะ มีการเปรียบเทียบกับ Node.js อยู่บ่อย ๆ (อ้างอิงจาก TechEmpower benchmarks) แต่อันนี้ไม่ขอคอนเฟิร์มนะ เพราะไม่ได้ทดลองด้วยตัวเอง แต่เอาเป็นว่าเร็วขึ้นกว่าแต่ก่อนก็ปลื้มแล้ว
  • Lightweight
    เหตุผลที่ทำให้เร็วขึ้นน่าจะเป็นเพราะตัว Framework มันเล็กลง และถูกพัฒนาขึ้นใหม่ในวงการของ Open source มีการแยกเป็นระบบ module dependency เอาง่าย ๆ คือก๊อปโมเดล npm ของ js มาเลย
  • Modern
    ตัวภาษาทันสมัยมีให้เลือกตั้งแต่ C#, VB, F#(ไม่รู้จัก) ในมุมมองของ Software Engineer ชอบ C# มากนะ เพราะมันทันสมบูรณ์ มีอะไรให้ใช้เยอะแยะ ใช้สอนนักศึกษาก็ดีด้วยเด็ก ๆ จะได้มีพื้นฐานการเขียนโปรแกรมที่ดี
  • Open Source
    ทั้ง Runtime, libraries, compiler, และอื่น ๆ  open source หมดเลยมี Repository บน GitHub ด้วยทำให้การพัฒนาต่อ ๆ ไปดูดีมีอนาคต

พอ Microsoft แยก .NET Core ออกมาแบบนี้แล้วเลยทำให้ ASP.net ที่เคยเป็นเครื่องมือในค่าย Microsoft ได้กลายเป็น Open Source Web Framework เต็มตัว แถมยังมีการจับมือกับเทคโนโลยีฝั่ง Client อื่น ๆ เช่น Bootstrap, Angular ทำให้น่าใช้ขึ้นไปอีก

ทำไมต้อง ASP.net ?

primate-ape-thinking-mimic

จากประสบการณ์…เวลาเราจะเลือกใช้เทคโนโลยีอะไรสักอย่างนึงก็ต้องดูหลาย ๆ ปัจจัยนะ ที่สำคัญคืออย่าตาม Trend อย่างเดียว ให้คิดถึงความเหมาะสมกับเราและทีมเป็นหลัก สำหรับเหตุผลที่เลือกจะศึกษา ASP.net ก็คือ

  1. Background

ส่วนตัวคุ้นเคยกับเทคโนโลยีของ Microsoft มานาน ตั้งแต่ ASP มาจนถึง ASP.NET (C#) ทำให้การเริ่มต้นศึกษา ASP.net Core ไม่ยากจนเกินไป เทียบกับต้องไปศึกษา JavaScript ให้สามารถใช้งาน Framework ได้อย่างคล่องแคล่วคงใช้เวลานานกว่ามาก

  1. Trend

อ้าวไหนบอกไม่ให้ตาม Trend!!! การตาม Trend ก็มีประโยชน์นะ เลือกใช้อะไรที่คนอื่นใช้กันเราก็จะมีเพื่อนร่วมทุกข์ (เจอปัญหาเดียวกัน) มีแหล่งความรู้มากมาย การใช้อะไรอินดี้ ๆ ไม่แนะนำนะ แต่สุดท้ายก็ต้องดูปัจจัยอื่นด้วย ไม่ใช่ใครบอกอันไหนดีลองหมดเปลี่ยนไปเรื่อย ๆ อันนี้ต้องทางสายกลางหาให้เจอจุดที่พอดี กรณีของ ASP.net ก็เป็นเทคโนโลยีที่มีมานานโดย Microsoft คงอยู่กับเราไปอีกนาน ด้าน Performance ก็ไม่ได้ขี้เหร่ คนใช้ก็เยอะอยู่

  1. Tools

ASP.net มี Visual Studio เป็นอุปกรณ์ในการพัฒนาที่ดีมาก ๆ มีทุกอย่างครบครันในนั้น เอาง่าย ๆ แค่ตั้ง Break Point เอาไว้ Debug code ได้แค่นี้ชีวิตก็ดีแล้ว

  1. Ecosystem

สาย Microsoft ตอนนี้มีทุกอย่างครบวงจรเลย Windows, Web, Mobile, Cloud เรียกได้ว่า C# ภาษาเดียวเที่ยวรอบโลก Windows App, Web App, Web service ได้หมด โดยเฉพาะการได้ Xamarin ที่เป็นอุปกรณ์พัฒนา Cross-platform Mobile App เข้ามาก็ทำให้วงจรนี้สมบูรณ์ยิ่งขึ้น

ถ้าจะไปทาง JavaScript ตอนนี้ก็ต้องทำใจรับการเปลี่ยนแปลง

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

สรุปคือตอนนี้กำลังศึกษา ASP.net Core อย่างจริงจังเพื่อใช้ในงานพัฒนาซอร์ฟแวร์และใช้ในการสอนเด็ก ๆ ที่มหาวิทยาลัย เพราะฉะนั้นต่อไปจะมีบทความเกี่ยวกับ ASP.net ออกมาเรื่อย ๆ ติดตามกันได้ครับ ที่เชียร์มากไม่ใช่อะไรหรอก เทอมหน้าเปิดวิชา ASP.net รอไว้แล้ว 555

 

2 thoughts on “หยุดตรงนี้ที่ ASP.net Core

  1. สวัสดีครับ จะเริ่มเขียน asp.net core เพื่อทำ web application ไม่ทราบว่าต้องศึกษาเรื่องใดบ้างครับหรือมี keyword ใดเพื่อไปศึกษาต่อบ้างครับ เห็นคำว่า bootstrap,Angular มันเกี่ยวข้องกันไหมครับหรือมี keyword อื่นๆอีกไหมครับ ขอบคุณครับ

    ถูกใจ

ใส่ความเห็น