Introduction to MVC

ASP.NET MVC ก็คือสูงสุดคืนสู่สามัญ...

ลองมองดู asp version แรก ๆ ซิ ไม่มีอะไรเลย แม้กระทั้ง control ซักตัว basic สุด ๆ อยากแสดงอะไรก็ <%=.. %>

แต่พอ .net ออก ASP.NET ก็เริ่มมี DataGrid หลัง ๆ มา .NET 2.0 ออกมา ก็มี ASP.NET 2.0 ก็มี Control เพิ่มขึ้นมากมาย FormView, GridView, LoginForm ect.. เพื่อเป็นการอำนวยความสะดวกให้กับ developer ทั้งหลาย 


แต่มันไม่ตอบ โจทย์หลาย ๆ อย่าง เพราะถ้าทำอย่างนี้ต่อไป ก็จะมี Control เพิ่มขึ้นมาเรื่อย ๆ ใน .net 4 5 6 ซึ่งจริง ๆ แล้วเราก็ไม่ได้ใช้มันซักเท่าไหร่ เพราะบางอันเราก็ใช้ไม่เป็น หรือไม่มีความจำเป็นต้องใช้


ตั้งแต่ .NET 3 จึงหยิบเอา MVC มาเป็นตัวชูโรงอ้างข้อความจากบล๊อกของ Scott Hanselman

In a recent MVC design meeting someone said something like
"we'll need a Repeater control" and a powerful and very technical boss-type said:

    "We've got a repeater control, it's called a foreach loop." 

แปลได้ความว่า ในการประชุมการออกแบบ (ASP.NET) MVC ไม่นานมานี้ มีใครบางคนเสนอว่า
"เราควรมี Repeater control" และหัวหน้าเทคนิคัลระดับบิ๊กหัวโต๊ะก็บอกมาว่า
   
            "นั่นเรามีแล้ว มันเรียกว่าลูป foreach ไง" 


ดังนั้น ASP.NET MVC Framework ก็เหมือนทำใหม่
ให้ เบา เล็ก และ เรียบง่าย
วางอยู่บนสถาปัตยกรรมที่ยอมรับได้ และรองรับการออกแบบ OO ได้ลงตัวขึ้น

ส่วนตัวการทำให้ Web App มีโมเดลคล้ายๆ Windows App ที่ double-click แล้วเขียนโค้ด
อ้างอิงคอนโทรลต่างๆ ได้ อย่างกับมันมี state เพราะทำให้สอนได้ง่าย

ผมไม่ค่อยรังเกียจกับการที่มีการแทรก <%=someVar%> ใน html file 
เพราะว่ามัน light-weight ดี ถ้าเขียนให้เรียบร้อย อีกอย่างผมสามารถใช้ความรู้ด้าน
HTML, CSS, JavaScript, JavaScript framework ต่างๆ 
ได้อย่างเต็มที่และเนียนไปกับ ASP.NET ได้ดีด้วย

ตอนนี้ผมว่า ASP แตกเห็น 2 แขนงแน่นอนคือ ASP.NET Web Form กับ ASP.NET MVC
เพราะหนีไม่พ้นที่จะมีคนรักของใหม่และกลุ่มคนรักของเก่ายกเหตุผลมาอ้างใส่กัน
เอาเป็นว่าแล้วแต่รสนิยมและความเหมาะสมในแต่ละงานก็แล้วกัน(แต่ผมเชียร์ MVC)
สำหรับผม ถ้าเอาสั้นๆ ผมว่า ASP.NET MVC นี่ใช่เลย
เพราะทำให้ ASP.NET เป็นเว็บแบบปกติหน่อยในทันที เพราะ
ไม่ต้องมี viewstate
ไม่ต้องมี postback
ไม่ต้องมี โมเดลของ page life-cycle event ที่ซับซ้อน (พวก onPreRender, OnLoadComplete.. ect พูดง่าย ๆ คือมีความเป็น General มากขึ้น เวลาเราเขียนภาษาอื่นเล่น PHP มันยังคง Concept เดิมนั้นเอง เช่น Request/Response)
ตอนนี้ MVC Framework มีถึง version 3 แล้วซึ่งเพิ่มความสามารถมากมาย โดยสิ่งที่สำคัญก็คือการ Call แบบ Asynchronous  ซึ่งต้องขอบอกตรง ๆ ว่า ตั้งแต่ MVC ออกมา ผมยังไม่ได้เอามาทำเป็นจริงเป็นจังเลย ส่วนหนึ่งมาจาก server ลูกค้า ไม่ได้ลง .NET Framework 3.5 แต่หลังจากนี้มันเริ่มแพร่หลายแล้ว คงต้องจริงจังซักที...

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

FancyBox not work in UpdatePanel

Convert float to int

Get QueryString from JavaScript