Entity Framework พร้อมสำหรับการผลิตหรือไม่ [ปิด]


10

ฉันกำลังมองหา Entity Framework สำหรับโครงการใหม่ที่ฉันจะเข้าร่วมและเป็นส่วนหนึ่งของงานวิจัยของฉันฉันขอให้ผู้เชี่ยวชาญในอุตสาหกรรมว่ามีความมั่นคงและพร้อมสำหรับการใช้งาน 'โลกแห่งความจริง'

ในการทำงานคือ:

  • EF
  • NHibernate
  • DevExpress XPO

ฉันมีประสบการณ์อย่างมากกับ XPO แล้ว แต่ฉันก็ไม่พอใจกับมันเป็นพิเศษ

คำตอบ:


8

ใช่ แต่มีข้อควรระวังบางประการ:

  • ได้รับการสนับสนุนอย่างเต็มที่จาก Microsoft และมีชุมชนที่กำลังเติบโต - แต่ถ้าเป็นรุ่นใหม่กว่าคู่แข่งที่อยู่ใกล้ที่สุดนั่นคือ nHibernate แต่ก็ยังไม่ได้เติบโตเท่ากับชุมชน

  • พร้อมกับมีชุมชนผู้ใหญ่น้อยจะมีบางครั้งที่คุณลักษณะที่สามารถใช้ได้กับ EF4 แต่แทบจะไม่ได้รับการบันทึก; หรือ EF4 จะส่งข้อยกเว้นซึ่ง Google ไม่สามารถช่วยเหลือคุณได้

  • มันเป็นคุณสมบัติเต็มรูปแบบเมื่อใช้เป็น Microsoft ตั้งใจ แต่จากประสบการณ์ของฉันมันอาจเป็นเรื่องยากที่จะติดตั้งเพิ่มเติมในระบบที่มีอยู่ เป็นการดีที่คุณจะใช้มันในสถานการณ์สีเขียวที่มีสแต็คของ Microsoft 100% แน่นอนว่ามีความยืดหยุ่นเพียงพอที่จะเชื่อมโยงกับระบบอื่น ๆ แต่การทำเช่นนั้นจะเพิ่มความยากลำบากอย่างมาก

อย่างไรก็ตามเพื่อย้ำจุดหลักมันสมบูรณ์และมั่นคงพอสำหรับการใช้การผลิต


สิ่งสำคัญอย่างหนึ่งที่ชี้ให้เห็นซึ่งดูเหมือนชัดเจน แต่มักถูกมองข้ามจนกระทั่งเกิดความเจ็บปวดนั่นคือ ORM ทำงานเพื่อทำแผนที่จากกระบวนทัศน์เชิงสัมพันธ์กับกระบวนทัศน์ OO หากระดับใดระดับหนึ่งไม่ปฏิบัติตามกฎของกระบวนทัศน์ที่เกี่ยวข้องคุณจะรู้สึกเจ็บเป็นพิเศษ

สิ่งนี้สามารถไปได้ทั้งสองทาง - ถ้าคุณมีความรอบรู้ในกระบวนทัศน์เชิงสัมพันธ์ / เซตของ SQL และ OOP แล้ว ORM จะให้ทั้งสองมารวมกันเหมือนเนย หากฐานข้อมูลของคุณดูเหมือนว่าต้องการเป็น OO และ OO-code ของคุณดูเหมือนว่าต้องการเป็นฐานข้อมูลดังนั้น YMMV


+1: ขอบคุณสำหรับข้อมูล โชคดีที่โครงการนี้เป็นพื้นที่สีเขียวเกือบทั้งหมดใน. NET stack (ยังคงโต้วาทีระหว่าง mysql และ sql server) และฉันจะสร้างแบบจำลองโดเมนเป็นครั้งแรก (และหวังว่าจะสร้างโครงสร้างตาราง)
Steven Evers

@SnOrfus: FWIW ฉันเพิ่งเริ่มใช้ EF ด้านบนของ MySQL เมื่อเร็ว ๆ นี้และสนุกกับมันจริงๆ
Eric King

5

เราใช้ EF ในแอปพลิเคชั่นการผลิตหลายอย่าง นอกจากนี้เรายังมี NHibernate ในแอพผลิตอีกหลายตัว ความคิดเห็นโดย STW ที่ EF ใช้งานได้ดีที่สุด "เมื่อใช้เป็นจุดมุ่งหมายของ Microsoft" นั้นเป็นเรื่องจริง มันเป็นความจริงของ NHibernate ว่าทำงานได้ดีที่สุดเมื่อใช้ตามรูปแบบที่ทีม NHibernate ตั้งใจไว้ ฉันไม่มีความรู้หรือประสบการณ์กับ XPO

ฉันไม่เสียใจที่ทำให้ NHibernate ทำการผลิต
ฉันไม่เสียใจที่จะนำ Entity Framework ไปใช้ในการผลิต

หนึ่งในปัจจัยผลักดันที่จะใช้ EF คือการรวมกับ LINQ ฉันรู้ว่า NHibernate ได้ทำงานกับ LINQ เป็นจำนวนมากเช่นกัน แต่ยังไม่มีเวลาตรวจสอบสิ่งนั้น


การทำงานกับทั้งคู่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้วิธีทำงานกับทั้งสองอย่าง มันเหมือนกับการเรียนรู้ทั้ง VB.NET และ C # - คุณถามคำถามเมื่อคุณเห็นความแตกต่างและการถามคำถามเหล่านั้นช่วยเพิ่มความเข้าใจในท้ายที่สุด
STW

3

เรากำลังใช้ EF4.1 กับแนวทางการใช้รหัสแรกสำหรับโครงการเว็บของเราและตามที่ระบุไว้ก่อนหน้านี้ว่าการใช้งานตามที่ Microsoft ตั้งใจไว้จะทำให้คุณหมดปัญหามากมาย

เราสามารถสังเกตเห็นได้ว่าระบบยังไม่โตเต็มที่และฉันพูดอย่างนี้เพราะ:

  1. พฤติกรรมยังคงเปลี่ยนไปมาก (เทียบจาก CTP5 เป็น 4.1)
  2. ตัวสร้าง LINQ to Entities สามารถจัดการประเภทพื้นฐานเท่านั้น (Int, String, lot)
  3. บางสิ่งบางอย่างไม่ทำงานอย่างสังหรณ์ใจเมื่อคุณพยายามรวมในชุดข้อมูลที่มีอยู่
    1. ไม่อนุญาตให้คุณสร้างคำจำกัดความของตารางสำหรับ dbsets บางอย่างเท่านั้น
    2. การแม็พฟิลด์เช่นชุดข้อมูลต้องใช้ Google
  4. ดูปัญหาที่ทราบอื่น ๆ

2

ฉันไม่ได้ใช้สแต็คเต็มรูปแบบ แต่เราใช้มันเป็นส่วนย่อยในผลิตภัณฑ์ของเราและดูเหมือนว่าค่อนข้างเป็นผู้ใหญ่แม้ว่าเราจะต้องปรับเปลี่ยนบางส่วนตามความต้องการของเรา


0

ฉันจะคิดอย่างนั้น ฉันใช้รหัส EF4 (CTP) เป็นครั้งแรกในการพัฒนาแอปพลิเคชันเว็บหลายผู้เช่า


+1 - ใช่ฉันได้ทำการฝึกสอนในทีมที่ใช้มันอย่างเข้มข้นในโครงการระดับองค์กรขนาดใหญ่มากและใช้งานได้ดี นั่นคือกับรุ่นแรกไม่ใช่รุ่นล่าสุด ดังนั้นฉันมั่นใจว่ามันปลอดภัย 100% ที่จะใช้เวอร์ชันล่าสุด

ฉันไม่รู้ว่าคุณจะมั่นใจได้อย่างไร 100% ของซอฟต์แวร์ใด ๆ ที่คุณยังไม่ได้ใช้งานจริงในสภาพแวดล้อมการผลิต
Jeremy

-1

ฉันคิด / หวังว่า ... ฉันเริ่มโครงการกับ EF 4 และแนวทาง Model-First ใหม่ ...

สำหรับสิ่งที่ฉันเห็น EF 4 นั้นแข็งแกร่งและมีคุณสมบัติครบถ้วนที่เป็นเวอร์ชั่นแรก ... ฉันจะบอกว่าทำไปฉันรู้ว่าฉันกำลังจะไป :)


-1

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.