วันศุกร์ที่ 30 พฤษภาคม พ.ศ. 2557

ASP.NET MVC ตอน 2 Entity Framework และเครื่องมือ

สำหรับการพัฒนาเว็บไซต์ด้วย Asp.net MVC ได้มีการพัฒนากันมาตัั้งแต่ VISUAL STUDIO 2008 Service Pack 1 ตอนนั้นเครื่องมือยังไม่พร้อมมากมาย แต่ ณ ปัจจุบัน MVC ได้เดินทางมาถึง Visual Studio 2013 เรียบร้อยแล้ว  แล้วมันมีข้อแตกต่างจาก MVC2,3และ4 ยังไงล่ะ? คำถามนี้น่าสนใจมาก ก่อนอื่นขอแนะนำเครื่องมือสำคัญในการพัฒนากันก่อน

1) Visual Studio แนะนำควรใช้ตั้งแต่ Version 2010 ขึ้นไป เพราะอะไร? สาเหตุเพราะการเปลี่ยน Visual Studio แต่ละ Version จะมีปัญหาเกี่ยวกับ Solution เล็กน้อย และเวอร์ชั่นต่ำมักประสบปัญหาในการเปิดเข้าไปเวอร์ชั่นสูงกว่า นอกจากนี้ เวอร์ชั่นใหม่ๆ ยังมมี Tool ให้เพียบพร้อมกับว่า ยกตัวอย่างเช่น Visual Studio 2012 Update ล่าสุด ที่มี ฟังก์ชัน ASP.NET WEP API2  ที่มีการจัดการโค้ดและรูปแบบที่ดีกว่า WEP API 1 ลดความยุ่งยากและซับซ้อนลง ซึ่งจากที่เคยลองทำใน 2 เวอรชั่นโดยส้รางใน Visual Studio 2010 และ Visual Studio 2012 พบว่า Visual Studio 2012 มีการทำงานง่ายและจัดการได้ง่ายกว่า รวมทั้ง ASP.NET MVC4 นั้น ยังมีการผนวก JQuery และ Tools Routing ที่เร็วขึ้นกว่าเดิม  (แต่หากใครใช้ MVC4 แนะนำข้ามไป 2013 เลยครับเพราะ 2012 ยังไม่พร้อมกับ MVC4 ครับ)

Visual Studio 2008
Credit : http://blogs.msdn.com/blogfiles/jasonlan/WindowsLiveWriter/VisualStudio2008Beta2nowavailable_2D47/image.png

Visual Studio 2010

Credit : http://www.christiano.ch/wordpress/wp-content/uploads/2010/04/Logo_Visual_Studio_2010.jpg

Visual Studio 2012 
Credit :http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-components-imagefileviewer/communityserver-blogs-components-weblogfiles-00-00-01-35-09/4784.VS2012-NEW-logo.PNG_2D00_550x0.png

Visual Studio 2013
Credit :http://agafonovslava.com/image.axd?picture=%2F2013%2F07%2FVisual+Studio+2013.png


2) Entity Framework  สำหรับ Entity Framework คือ Tools ในการจัดการ ORM(Oreited Relational Mapping) อธิบายง่ายๆว่ามันคือเครื่องมือในการจัดการ Query จากฐานข้อมูลให้อยู่ในรุปแบบของ Object ตามรูปแบบของภาษาต่างๆ เช่น C#, VB.net แทนเราโดยที่เรา ไม่จำเป็นต้องไปเรียนรู้คำสั่ง SQL ไม่ว่าจะเป็น Select, Insert, Update, Delete เลย แล้วทำไมต้องเป็น Entity Framework ทั้งที่มีตัวอื่นมากมาย?  คำตอบนี้ผมขอตอบดังนี้

  1. เพราะไมโครซอฟท์ซัพพอร์ตกับ Entity Framework ข้อนี้ชัดเจนครับ ผมเลือกเพราะว่าไมโครซอฟท์ซัพพอร์ต อาจจะเป็นคำตอบแบบกำปั้นทุบดิน แต่ขอบอกเลย เหตุผลคือมันไม่มีแพให้แน่นอน มันยังได้ไปต่อนั่นเอง
  2. Entity Framework เหมาะกับการทำงานแบบเป็นทีมในการพัฒนามากกว่า ทำให้การทำงานเป็นทีมในการ Maintenance Database เป็นเรื่องง่ายๆ สามารถจัดการได้ด้วยตัวคนเดียวและการเขียนโค้ดก็ลดน้อยลง จากประสบการณ์ผม ใช้แบบ Database -> Object และทำงานเป็นทีม หลายๆคน ผมพบว่า พอมี Tool เข้ามาช่วย ทำให้ Team Lead ทำงานได้ง่ายขึ้น น้องๆในทีมทักมา เราแก้ไขอย่างรวดเร็วในฐานข้อมูล จากนั้นบอกน้องๆ ให้ Update Entity Framework เพื่อแก้ไขปัญหาที่ การอัพเดตก็ง่ายนิดเดียวไม่ต้องพึ่งโค้ดแม้แต่น้อย ทำให้การทำงานเป็นหนึ่งเดียวได้ง่ายขึ้น จัดการปัญหาได้เร็ว กว่าการใช้ SQL ปกติ
  3. ลดปัญหา เกี่ยวกับ Syntax SQL Error ได้มากเช่น การจัดการกับ NullValue ที่เป็นปัญหาพื้นๆ แต่มักจะถูกละเลยได้ง่ายๆ
รูปภาพตัวอย่างการใช้ Entity Framework

แค่ 3 เหตุผลเบื้องต้นก็เพียงพอสำหรับการที่ผมจะเลือกมาใช้ในการทำงานแล้วครับ
ทีนี้ในการเขียน MVC จำเป็นจะต้องใช้แต่ Entity Framework หรือไม่? คำตอบคือไม่จำเป็นครับ Entity Framework เป็นแค่ Tool ตัวนึงครับ เราสามารถจัดการตัวอื่นได้ แต่ Solution ที่ผมใช้และง่ายจริงๆคือ การใช้ การพัฒนาด้วย ASP.NET + ENTITY FRAMEWORK + SVN (tortoise) ทำให้การพัฒนาซอฟท์แวร์ สำหรับ Develooper สะดวกขึ้น และแก้ปัญหาได้เร็วขึ้น ถึง 20% ครับ

วิธีการใช้ Entity Framework เบื้องต้น
1. เปิดโปรเจคที่ต้องการใช้
2. คลิ๊กขวาที่ Solution Explorer เลือก Add New Items เลือกที่เมนู Data จากนั้นเลือก ADO.NET Entity Framework Data Model  และทำการตั้งชื่อ จากนั้นกด Add
3. เมื่อเข้ามาแล้วจะเข้าสู่หน้าจอให้เลือก Content Model มีตัวเลือกสองแบบ (หากต้องการใช้ Database To Object) ให้เลือก Generate From DataBase และกด Next จะเข้าสู่ขั้นตอนต่อไป

4. ขั้นตอนต่อมาคือการเลือก Data Connection สำหรับขั้นตอนนี้คือการเลือกการติดต่อกับฐานข้อมูลว่าจะให้ Entity ติดต่อกับฐาน้ขอมูลอะไร ขั้นแรกถ้ายังไม่เคยมีให้เลือก New Connection และทำตามขั้นตอนไป แต่ถ้ามีแล้วให้เลือก Connection จาก ComboBox ครับ และจะมี Checkbox ให้ Save Connection เข้าสู่ Web.Config (App.config) ซึ่งตรงนี้ แล้วแต่จะกดนะครับ โดยส่วนตัวผมชอบแบบสร้างให้เพราะเราแก้ไขมันง่ายดี เมื่อเรียบร้อยกด Next จะเข้าสู่ขั้นตอนสุดท้ายสำหรับเลือก Table,View,Store Procedure
5. ขั้นตอนนี้คือขั้นตอสำหรับเลือกว่า จะติดต่อ Entity กับ Table หรือ View, Storeprocdure อะไรบ้าง

เมื่อทำครบทุกขั้นตอนแล้ว จะได้ไฟล์เข้ามาใหม่ ตามชื่อที่เราตั้งโดย จะนามสกุล edmx ทีนี้พอเราดับเบิ้ลคลิ๊กเข้าไปจะพบตารางเต็มไปหมด ขั้นตอนต่อจากนี้เราก็แค่หยิบมาใช้ซึ่งทุกอย่างจะอยู่ในรูปแบบของ Object หมดแล้วทั้งสิ้นเรามีหน้าที่ แค่หยิบไปใช้ สำหรับการ Insert,Update,Delete จะใช้ Syntax แบบ LINQ to sql ในการจัดการ CRUD หากใครไม่เเคยใช้ก็ข้อให้ไปศึกษาที่นี่ก่อนนะครับ

เพิ่มเติม : http://bithai.wordpress.com/2009/09/22/%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-linq-%E0%B8%95%E0%B8%AD%E0%B8%991/




ไม่มีความคิดเห็น:

แสดงความคิดเห็น