Software Engineer for non-tech people day 02

Nakorn Rientrakrunchai
T. T. Software Solution
7 min readJul 31, 2024

สวัสดีครับ จากที่ทางผมได้มีการอบรม SE for non-tech day 02 ซึ่งเป็นคอสที่จัดสำหรับคนทั่วไปที่ไม่ได้ทำอาชีพด้าน tech มาก่อน แล้วอยากเปลี่ยนสายอาชีพเป็น tech ซึ่งทางผม ได้ออกแบบตำแหน่งใน T.T.Software ให้มีตำแหน่ง Software Engineer ซึ่งเป็นตำแหน่งกลางๆที่ทำทั้ง Dev และ SA โดยไม่ลงลึกมาก เพื่อให้เหมาะกับคนที่เพิ่งเปลี่ยนสายอาชีพมา, ทีนี้ทางน้องๆผู้เรียน ติดปัญหาในการติดตั้งโปรแกรมต่างๆ ระหว่างเรียน ผมจึงเขียนบทความนี้ เพื่ออธิบายทีละขั้นตอนอย่างช้าๆ โดยระหว่างทำนี้ ผมได้ใช้ window 11 เครื่องเปล่า มาค่อยๆติดตั้งโปรแกรม เพื่อใช้ในการนำเสนอนะครับ โดยเมื่อทำสำเร็จ ก็จะรันโปรแกรม หน้าตาแบบนี้ ออกมาได้ครับ และเปิด docker ได้บ้าง

อย่างไรก็ตาม เพื่อให้เข้าใจเนื้อหาการสอน จำเป็นต้องเข้าเรียน ระหว่างคลาสประกอบด้วยนะคับ ถ้าอ่านบทความนี้อย่างเดียว อาจจะไม่เข้าใจเนื้อหาที่จะสอนด้วยนะคับ, ถ้าใครสนใจวีดีโอหรือการเรียน (ฟรีสำหรับคนสนใจ แต่จำกัดจำนวน) ก็ติดต่อเข้ามาได้นะครับ

โดยก่อนที่จะเริ่มติดตั้งโปรแกรมในบทเรียนนี้ ให้นักเรียน ติดตั้ง Visual Code ไว้ก่อนด้วยนะครับ

การติดตั้ง .NET 8

ดำเนินการตามขั้นตอนต่อไปนี้ ได้แก่

  • ดาวโหลดและติดตั้ง .NET8 SDK จากที่นี่ https://dotnet.microsoft.com/en-us/download/dotnet/8.0
  • เมื่อติดตั้งแล้ว ลองเช็ค .NET version ในเครื่อง ด้วยคำสั่ง ดังนี้
dotnet --version
  • ควรได้ผลลัพท์ดังนี้

การสร้างและทดสอบรัน .NET Project อย่างง่าย

ให้ลองทำตาม tutorial นี้

สรุปโดยย่อ ให้รันคำสั่งดังนี้

dotnet new mvc -o MvcMovie
code -r MvcMovie

โดยเมื่อรันแล้ว มันควรจะเปิด code ใน vscode มาพร้อมแก้ไขต่อ ดังภาพ

รันคำสั่งเพื่อจัดการกับ certificate สำหรับการพัฒนา .NET ดังนี้

dotnet dev-certs https --trust

โดยเมื่อรันแล้ว ควรจะได้แบบนี้ โดยให้กด yes เพื่อ trust certificate

รันคำสั่งต่อไปนี้ เพื่อเปิดเว็บให้แสดงขึ้นมา

dotnet run --launch-profile https

โดยหลังจากรันแล้ว ควรได้แบบนี้

ติดตั้ง dotnet ef เพื่อทำงานกับ database

ให้รันคำสั่ง ต่อไปนี้ เพื่อติดตั้ง Entity Framework Core .NET Command-line Tools

dotnet tool install --global dotnet-ef
dotnet ef --version

ซึ่งหากสำเร็จ ควรแสดงได้ดังนี้.

ติดตั้ง WSL2 (สำหรับกรณี window)

สำหรับ Mac ให้ข้ามขั้นนี้ไปนะครับ, อ้างอิงขั้นตอนในเอกสารนี้

https://learn.microsoft.com/en-us/windows/wsl/install

ให้รันคำสั่งต่อไปนี้

wsl --install

การติดตั้ง Docker Desktop

ให้ทำการดาวโหลดและติดตั้ง Docker Desktop จากที่นี่ https://www.docker.com/products/docker-desktop/

โดยในขั้นนี้ ผู้เรียนแต่ละคน สามารถเลือก OS ที่ตรงกับเครื่องของตนเองได้เลย

ให้ทำการกดติดตั้ง โดยสำหรับ Windows จะต้องติดตั้ง WSL2 ด้วย (ซึ่งทำในขั้นตอนก่อนหน้าไปแล้ว) แต่สำหรับ Mac, Linux ก็ลงแบบ Default Option ไปได้เลย

Pull code สำหรับเริ่มเรียน

ในการเรียนคอส SE for non-tech people วันที่สองนี้ จะใช้ source code จากที่นี่

https://github.com/T-T-Software-Solution/fishprevention

โดย code ชุดนี้เป็น private ให้นักเรียนที่ต้องการเรียน แจ้ง gihub user มาที่ผม เพื่อดึงเข้า repo เพื่อจะใช้ทำ lab ไปพร้อมๆกันนะครับ

โดยเมื่อ pull code ลงมาแล้ว จะได้แบบนี้

ให้เข้าไปที่พาท .\5.Tools\docker จากนั้น รันคำสั่งดังนี้

docker compose up -d

ถ้าไม่ติดปัญหาอะไร ก็น่าจะ start postgres, pgadmin, jasperserver ขึ้นมาได้

โดยเราสามารถเช็คการรัน จาก Docker Desktop จะเห็นดังนี้

ให้ทำการตรวจสอบที่ละระบบ ตามขั้นตอนดังนี้

ตรวจสอบ Pgadmin และ Postgres

ให้เข้าไปที่ URL ดังนี้ไปนี้ พร้อมกรอก user/password ด้านล่าง

URL: http://localhost:8089/
Username: admin@admin.com
Password: admin

หากสำเร็จจะเข้าสู่หน้าจอดังนี้, ให้เลือก Register -> Server โดยตรง name ใส่เป็น fishprevention (หรือชื่ออื่นก็ได้)

โดยใน tab Connection ให้ใส่แบบนี้ (รหัสผ่าน ใส่ admin)

กด Save, หากเรียบร้อย จะได้ดังนี้

สร้าง Database fishprevention

กลับไปที่ VS Code แล้วไปที่พาท .\3.Infra\App.Database ให้รันคำสั่ง ต่อไปนี้

dotnet ef database update

สำหรับเครื่องไหนที่ไม่เคยรันคำสั่งนี้ มันจะขึ้นแสดงผลการสร้าง database ใหม่ขึ้นมาซึ่งแตกต่างจากของเครื่องผม ที่มี DB อยู่แล้ว

เมื่อกลับไปตรวจสอบที่ pgadmin อีกครั้ง จะพบว่า db ถูกสร้างขึ้นมาแล้ว

ทดสอบรัน API

กลับมาที่ source code เข้าไปใน path .\4.Presentations\App.Api จากนั้น รันคำสั่ง ดังนี้

dotnet run

หากเรียบร้อย, ควรจะแสดงดังนี้

และเมื่อเข้า URL https://localhost:58115/swagger/index.html ผ่านทาง browser ควรจะเห็น swagger ขึ้นมาดังนี้

ทดสอบรัน Web

กลับมาที่ source code เข้าไปใน path .\4.Presentations\App.Mvc จากนั้น รันคำสั่ง ดังนี้

dotnet run

หากเรียบร้อย ควรแสดงขึ้นมา ดังนี้

และเมื่อเข้าสู่ URL https://localhost:58116/UserView/User ควรแสดงดังนี้ โดยในหน้าจอนี้ ผมได้ลองเพิ่มข้อมูลไว้แล้ว มันเลย เห็นข้อมูลตามภาพด้านล่าง

ให้ทดลองเล่น และเพิ่มข้อมูลไปเรื่อยๆ จนได้ข้อมูลคล้ายตัวอย่างนี้

เข้าใช้งาน Jasper Server

หลังจากรัน docker compose ขึ้นมาแล้ว, จะสามารถเข้าสู่ jasper server ได้ ผ่าน URL และ credential ดังนี้

http://localhost:8088/jasperserver/login.html
JASPERREPORTS_USERNAME: jasperadmin
JASPERREPORTS_PASSWORD: bitnami

เมื่อ login สำเร็จ จะพบหน้าจอดังนี้ โดยใน fishprevention ด้านล่าง ทางผมได้ configure report server เสร็จไว้ก่อนแล้ว จึงแสดงขึ้นมา, ของนักเรียน เมื่อเข้ามา มันจะยังไม่มี fishprevention folder เหมือนด้านล่างนี้

ติดตั้ง font ภาษาไทยให้ Jasper Server

ให้กลับไปที่ .\5.Tools\docker แล้วหาไฟล์ชื่อ setupFont.txt ซึ่งจะมีคำสั่งดังนี้

docker cp "TH Sarabun New.jar" jasperserver:/bitnami/tomcat/webapps/jasperserver/WEB-INF/lib
docker cp "TH SarabunPSK.jar" jasperserver:/bitnami/tomcat/webapps/jasperserver/WEB-INF/lib
docker compose stop
docker compose start

ให้รันคำสั่งจนครบ เพื่อให้ jasper server สามารถแสดงฟอนต์ ภาษาไทย ได้อย่าง ถูกต้อง

การกำหนด Data source ให้แก่ Jasper Server

เพื่อให้ jasper server สามารถเชื่อมต่อกับ database ได้ จะทำการกำหนดค่า ดังนี้

  • สร้าง folder ชื่อ fishprevention (ไม่ได้แสดงในรูปด้านล่าง ให้กดเองได้เลย เพราะมันง่าย)
  • กด Add Resource -> Data source

จากนั้นกำหนดค่า ดังนี้ โดย user/pass คือรหัสผ่านเพื่อต่อเข้า Database, หากกด Test Connction จนสำเร็จแล้ว แปลว่า ต่อ DB ได้แล้ว

การติดตั้ง Jaspersoft Studio เพื่อพัฒนา report

ให้ทำการดาวโหลดโปรแกรมจาก URL https://community.jaspersoft.com/download-jaspersoft/community-edition/

ระหว่างเรียนในคอสนี้ ขอให้ใช้เวอชัน 6 ก่อนตามกรอบแดง, นักเรียนสามารถดาวโหลดตาม OS ของเครื่องที่ใช้เรียน ได้เลย

โดยเมื่อติดตั้งเรียบร้อย จนสามารถเปิดโปรแกรมได้ จะพบดังนี้ โดยเวอชันของเครื่องผม จะเก่ากว่าในรูปข้างต้น เพราะติดตั้งมานานกว่า

เพื่อให้ jaspersoft studio สามารถแก้ไขภาษาไทยได้ ให้ดำเนินการ ดังนี้

ดาวโหลดฟอน ไทยสารบัญ จากที่ต่างๆเช่น

https://www.f0nt.com/release/th-sarabun-new/
https://www.f0nt.com/release/13-free-fonts-from-sipa/

จากนั้น ไปที่เมนูตามกรอบแดง

จากนั้น ทำการ Add font ตามขั้นตอนในกรอบแดง, โดยใส่ให้ครบทั้ง Normal, Bold, Italic, Bold Italic และอย่าลืมติกด้านล่างในกรอบแดง, จากนั้น กด Apply and cl

การเปิด Report เพื่อ Review

ในพาทของโปรเจค ให้สังเกตุว่า ไฟล์ jasper report อยู่ในพาท .\5.Tools\reports

ใน Jaspersoft Studio ให้กดเลือก Create new folder ตามตัวอย่างด้านล่าง

จากนั้นให้ใส่พาทและตั้งชื่อ ดังนี้

หากทำถูกต้อง จะสามารถเปิดรายงานมาแก้ไขได้ ดังนี้

การกำหนด Data Adaper ให้ Jasper Report

ใน tab Repository Explorer ให้ทำการ Create Data Adapter ดังนี้

โดยทำการใส่รายละเอียดตามด้านล่างนี้ โดย user/pass คือ รหัสที่ใช้ในการเข้า database (อ่านหัวข้อก่อนหน้า เกี่ยวกับ DB ประกอบ)

ถ้ากด Test แล้วขึ้นสำเร็จแบบนี้ แปลว่า ต่อได้สำเร็จ

ทำการเลือก DB ให้กับ Report โดยคลิกดังนี้

เลือก Connection ที่สร้างขึ้น

จากนั้น ทดลองดึงข้อมูลผ่าน รายงาน จะพบดังนี้ (ข้อมูลในกรอบแดง จะเกิดจาก ผมได้เพิ่มข้อมูลลงในโปรแกรมไว้ก่อนแล้ว)

การ publish Report ขึ้นไปที่ Jasper Server

ให้ทำการกำหนดค่า Report Server ใน Reporsitory ก่อน ดังนี้

จากนั้นกำหนดค่าตามลำดับ จนสำเร็จตามรูปด้านล่าง

จากนั้น ทำการ publish รายงานขึ้นไปบน server ดังนี้

ทำไปเรื่อยๆตามรูปข้างล่างนี้

หากเรียบร้อย เมื่อกลับไปเช็คที่ Jasper Report Server จะพบว่า มีรายงานชื่อ foundHistory โผล่ขึ้นมา ดังนี้

ทดสอบดูรายงานใน .NET Web Application

เข้าไปที่เมนู รายงานการพบปลา จะพบรายงานถูกแสดงอย่างถูกต้อง ตามรูปด้านล่าง

เมื่อดาวโหลดเป็น excel จะสามารถดูไฟล์ได้ ดังนี้

ในที่สุด ก็เขียนจนจบได้สักที ขอเอารูปในโครงการ JSD7 มาให้ดู เพื่อเป็นกำลังใจให้ทุกท่านที่พยายามจะเปลี่ยนสายอาชีพ มาเข้าสู่สาย Tech ให้ประสบความสำเร็จ กันทุกคน นะครับ

--

--