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