--
CharinyaKlakhang - 06 Jan 2009
Model-view-controller (
MVC) คือ สถาปัตยกรรมซอฟแวร์ (software architecture) ที่มีการแบ่งแยกระบบออกเป็น 3 ส่วนหลักๆ ได้แก่ data model, user interface, and control logic
MVC architecture
Controller
- เป็นส่วนที่ทำงานเป็นอันดับแรกเมื่อมีโปรแกรมถูกเรียก จาก Web browser
- เป็นส่วนที่ติดต่อการทำงานระหว่างผู้ใช้และโปรแกรม
- มีการติดต่อกับ Database(ฐานข้อมูล) ด้วย Model และแสดงผลข้อมูลผ่านทาง View
- เป็นส่วนที่มีการประมวลผลหลัก ของโปรแกรม
Model
ใน object oriented การใช้เว็บ database-driven จะเป็นแบบ
MVC ซึ่ง Model จะประกอบด้วย class ที่เชื่อมต่อกับ RDBMS ใน Ruby On Rails class model จะถูกจัดการผ่านทาง Active Record (เป็นตัวเข้าถึงข้อมูลในฐานข้อมูล) ซึ่งโปรแกรมเมอร์ทุกคนควร ต้องทำเป็น subclass คือ
ActiveRecord?::Base class และโปรแกรมจะเข้าใจอัตโนมัติว่าจะใช้ตาราง RDBMS อันไหน และเรียกคอลัมภ์ต่างๆในตารางเอง
ใน Model มีการติดต่อกับ Active Record เพื่อช่วยจัดการงานด้าน Database เช่น
- ดูแลในเรื่องของการติดต่อสื่อสารระหว่าง Object และ Database โดยที่ผู้พัฒนาไม่ต้องยุ่งยากกับการใช้ SQL command
- เป็นงานด้านการตรวจสอบความสัมพันธ์ของข้อมูล มีผลกับฐานข้อมูล
- Handles validation(ตรวจสอบความถูกต้อง), association(ความสัมพันธ์ระหว่างฐานข้อมูล), transactions, and more…
View
- เป็นส่วนที่ต้องแสดงผลผ่าน web browser
- เขียนด้วยพื้นฐานของ HTML(.rhtml), แทรกด้วย script ของ ruby คล้าย PHP,JSP,ASP
- การทำงานสัมพันธ์อยู่กับ controller
- นำ component มาใช้ใหม่ได้ (Reusable)
- สนับสนุน Ajax
- View เป็นการแสดงผลทาง logic หรือ การทำอย่างไรให้ข้อมูลจาก Controller class ถูกแสดงผล วิธีการใน Rails จะใช้ Embedded Ruby (ไฟล์นามสกุล .rhtml) ซึ่งก็เป็นพื้นฐานจาก HTML และด้วยไวยากรณ์ (syntax) ที่คล้าย JSP นอกจากนี้ด้วยยังสนับสนุนการใช้ HTML และ XML
- สำหรับ method ที่อยู่ใน class ของ controller หากต้องการที่จะแสดงผลแก่ผู้ใช้ จึงจำเป็นต้องเขียน code ย่อยขึ้นมา และเก็บในโฟลเดอร์ของ view นี้เอง โดยจะต้องตั้งชื่อไฟล์นี้ เป็นชื่อเดียวกันกับ method ใน controller ที่ต้องการให้มี output ในการแสดงผล เช่น
- ใน controller mysite มีการกำหนด method ที่มีชื่อว่า index,home,contact เป็นต้น โดยทั้ง 3 method ต้องมีการแสดงผลต่างกัน ดังนั้น โปรแกรมเมอร์ต้องเขียนไฟล์ในการแสดงผลใน โฟลเดอร์ view 3 ไฟล์ ได้แก่ index.rhtml , home.rhtml , contact.rhtml เป็นต้น
- นอกจากนี้ยังสามารถกำหนด stysheet และ template เพื่อให้งานเว็บแอพลิเคชั่นนั้นมีมาตรฐานเดียวกันทั้งหมด ในกรณี template จะสร้างไฟล์ ที่เป็นตัวกำหนด header, content, footer ไว้ที่โฟลเดอร์ layout ภายใต้โฟลเดอร์ view ซึ่งลักษณะการทำงานของไฟล์นี้ จะถูกเรียกใช้ในการแสดงผลทุกครั้ง เป็นต้น
MVC ใน Ruby On Rails"> โครงสร้าง MVC ใน Ruby On Rails
