ครั้งสุดท้ายที่เคยได้ใช้เครื่องมือของ Microsoft .NET คือปี 2006 ตอนนี้ 2021 เครื่องมือ .NET เปลี่ยนไปหมดแล้ว ข้อสำคัญคือ .NET runtime และ .NET SDK มีในทั้ง Windows, Linux และ macOS
.NET ก็ใช้เทคนิคเดียวกันกับ Java คือมี Runtime เพื่อรันภาษา byte code ของตัวเองไปเป็น native code ของแต่ละ platform ซึ่งในฝั่ง .NET มี CLR (Common Language Runtime) เทียบได้กับ JRE ของฝั่ง Java ส่วนการ packaging ในฝั่ง Java มี Jar ในฝั่ง .NET เรียก Assemblies
ตัว .NET runtime เองนั้นตอนนี้ก็รองรับการพัฒนาในอุปกรณ์หลายๆอย่างทั้ง ทำได้ทั้ง Desktop, Web, Mobile, IoT, AI/ML
การใช้งานตอนนี้ของ .NET ก็ดีขึ้นมาก โดยเมื่อติดตั้ง dotnet (โหลดติดตั้งในแต่ละ OS ได้จากที่นี่ https://aka.ms/dotnet-download ตอนนี้ version ล่าสุดที่ stable คือ .NET 5) ก็จะได้ทั้ง runtime ทั้ง SDK และมีคำสั่ง dotnet เอาไว้ให้ใช้งานง่ายๆทั้งสร้าง project ใหม่ และ รันง่ายๆผ่าน dotnet run
มาเริ่ม Hello World ง่ายๆกัน
เริ่มจากสร้างโปรเจ็คสำหรับ console app โดยสั่ง
dotnet new console -n HelloWorld
dotnet new เป็น subcommand แล้วเราใส่ option console เพื่อบอก template ของโปรเจ็คที่จะสร้างว่าเป็นแบบ console application จากนั้นใส่ -n HelloWorld เพื่อระบุชื่อโปรเจ็ค
เมื่อรันแล้วจะได้ folder HelloWorld ออกมา ด้านในมีไฟล์แบบนี้
├── HelloWorld.csproj
├── Program.cs
├── bin
│ └── Debug
│ └── net5.0
│ └── ref
└── obj
├── Debug
│ └── net5.0
│ ├── HelloWorld.AssemblyInfo.cs
│ ├── HelloWorld.AssemblyInfoInputs.cache
│ ├── HelloWorld.GeneratedMSBuildEditorConfig.editorconfig
│ ├── HelloWorld.assets.cache
│ └── ref
├── HelloWorld.csproj.nuget.dgspec.json
├── HelloWorld.csproj.nuget.g.props
├── HelloWorld.csproj.nuget.g.targets
├── project.assets.json
└── project.nuget.cache
ไฟล์ HelloWorld.csproj
คือไฟล์ config ของ project ส่วน Program.cs
คือไฟล์โค้ดภาษา C# ที่มี Main method อยู่ ส่วน bin
กับ obj
คือไฟล์ที่ถูกสร้างตอนที่เรา build project
มาดูกันใน Program.cs
เราจะเห็นโค้ดแบบนี้
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
ซึ่งโครงสร้างของโปรแกรม C# เบื้องต้นคือมี class ใน class จะมี method อยู่ และเราจัดกลุ่ม class ได้ด้วย namespace เช่นโค้ดนี้มี class Program ที่มี method Main ถูกจัดอยู่ภายใต้ namespace HelloWorld
ส่วน using System;
นั้นใช้เพื่อ import namespace อื่นในกรณีนี้คือ System
ที่มีคลาส Console
ทำให้เราเรียกใช้สั้นๆไม่ต้องใส่ชื่อ System.Console
ทุกครั้ง
ใน Main method นั้นเราก็ทำการเรียก Console.WriteLine("Hello World!");
เพื่อส่งสตริง "Hello World!"
ออกไปแสดงที่หน้าจอ console นั่นเอง
เราสั่งรันได้โดยเรียก
% dotnet run
Hello World!
สรุป
จากปี 2006 จนตอนนี้ 2021 เทคโนโลยีของ .NET ก็พัฒนาไปมากๆ การใช้งานจากตอนโน้นที่ต้องลง Visual Studio บน Windows เท่านั้นก็เปลี่ยนเป็นเครื่องมือที่มีทั้ง Runtime, SDK และ command line ง่ายๆให้ใช้ในทุก platform หลักทั้ง Windows, Linux และ macOS
IDE อย่าง Visual Studio ก็ไม่ใช่ทางเลือกเดียวอีกต่อไป จะใช้ VS Code หรือใช้เครื่องมือของ JetBrains อย่าง JetBrains Rider ก็ได้
ภาษาหลักของ .NET ตอนนี้คือ C# และมีภาษาที่ติดมากับ SDK ด้วยเลยอีกสองคือ F# กับ Visual Basic
ด้วยความที่ .NET runtime นั้นมีเครื่องมือในการพัฒนา application ได้หลากหลาย platform ก็ทำให้เป็นตัวเลือกที่ดีตัวนึงในการใช้งาน ในหลายๆสถานการณ์เช่นกัน ดังนั้นใครยังไม่เคยลองหัด .NET และภาษาของ .NET อย่าง C# ก็ควรจะลองดูได้เช่นกันครับในยุคนี้ ถือว่าคุ้มต่อการลงทุนศึกษาอยู่เช่นกัน
ขอฝาก Buy Me a Coffee
สำหรับท่านใดที่อ่านแล้วชอบโพสต์ต่างๆของผมที่นี่ ต้องการสนับสนุนค่ากาแฟเล็กๆน้อยๆ สามารถสนับสนุนผมได้ผ่านทาง Buy Me a Coffee คลิ๊กที่รูปด้านล่างนี้ได้เลยครับ
ส่วนท่านใดไม่สะดวกใช้บัตรเครดิต หรือ Paypal สามารถสนับสนุนผมได้ผ่านทาง PromptPay โดยดู QR Code ได้จากโพสต์ที่พินเอาไว้ได้ที่ Page DevDose ครับ https://web.facebook.com/devdoseth
Top comments (0)