คำถามติดแท็ก nhibernate

4
อะไรคือข้อผิดพลาดที่พบบ่อยที่สุดและรูปแบบการต่อต้านที่ผู้ใช้โปรแกรมเมอร์ของ NHibernate ทำ?
อะไรคือข้อผิดพลาดที่พบบ่อยที่สุดและรูปแบบการต่อต้านที่ผู้ใช้โปรแกรมเมอร์ของ NHibernate ทำ? โปรดอธิบายว่าทำไมการปฏิบัติเหล่านั้นจึงไม่ดีหรือให้ลิงก์ไปยังแหล่งข้อมูลเพื่อการอ่านเพิ่มเติม ตัวอย่างเช่น: การต่อต้านแบบหนึ่งที่พบได้ทั่วไปสำหรับโปรแกรมเมอร์ NHibernate ใหม่คือการใช้เอกลักษณ์ / ดั้งเดิม POID แทนการใช้ออร์มสไตล์ ORM อ่านเพิ่มเติมได้ที่นี่ ...
28 nhibernate 

7
การเขียน Data Access / Data Mapping Layer ของคุณเป็นแนวคิดที่“ ดี” หรือไม่?
ขณะนี้เรากำลังตกอยู่ในสถานการณ์ที่เรามีทางเลือกระหว่างการใช้ mapper เชิงสัมพันธ์เชิงวัตถุนอกกรอบหรือการรีดของเราเอง เรามีแอปพลิเคชั่นรุ่นเก่า (ASP.NET + SQL Server) ที่ซึ่ง data-layer & business-layer ถูกบดเข้าด้วยกันอย่างน่าเสียดาย ระบบไม่ซับซ้อนโดยเฉพาะอย่างยิ่งในแง่ของการเข้าถึงข้อมูล มันอ่านข้อมูลจากกลุ่มขนาดใหญ่ (35-40) ของตารางที่เกี่ยวข้องระหว่างจัดการกับมันในหน่วยความจำและบันทึกมันกลับไปที่ตารางอื่น ๆ ในรูปแบบสรุป ตอนนี้เรามีโอกาสในการปรับโครงสร้างใหม่และกำลังมองหาเทคโนโลยีที่จะใช้ในการแยกและจัดโครงสร้างการเข้าถึงข้อมูลของเราอย่างเหมาะสม เทคโนโลยีใดก็ตามที่เราตัดสินใจเราต้องการ: มีวัตถุ POCO ในรูปแบบโดเมนของเราซึ่งเป็นความไม่รู้เรื่องการคงอยู่ มีเลเยอร์นามธรรมเพื่อให้เราทดสอบหน่วยโมเดลวัตถุของเรากับแหล่งข้อมูลต้นแบบที่เยาะเย้ย เห็นได้ชัดว่ามีหลายสิ่งในนี้อยู่แล้วในแง่ของรูปแบบและกรอบ ฯลฯ ส่วนตัวผมกำลังผลักดันให้มีการใช้ EF ร่วมกับADO.NET หน่วยทดสอบ Repository Generator / POCO Entity ปั่นไฟ สามารถตอบสนองความต้องการทั้งหมดของเราสามารถรวมเข้ากับรูปแบบ Repo / UnitOfWork ได้อย่างง่ายดายและโครงสร้างฐานข้อมูลของเรานั้นมีความเป็นผู้ใหญ่ที่สมเหตุสมผล อย่างไรก็ตามคนอื่น ๆ ในกลุ่มกำลังแนะนำให้สถาปนิก / กลิ้ง DAL ของเราเองอย่างสมบูรณ์ตั้งแต่เริ่มต้น (DataMappers …

2
ทำไมรูปแบบพื้นที่เก็บข้อมูลจำเป็นใน NHibernate?
ฉันอ่านอย่างเป็นทางการของแอพลิเคชัน NHibernate ตามแรกของคุณ ในขณะที่การสอนนั้นดีและง่ายต่อการติดตามฉันสงสัยว่าทำไมรูปแบบ Repository จึงถูกใช้ ในต่างๆAdd, Update, RemoveวิธีการในProductRepositoryการดำเนินงานรหัสเกือบจะเหมือนกับ - พวกเขาทั้งหมดใช้การทำธุรกรรมและความแตกต่างที่อยู่ใน "เนื้อ" คือโทรsession.Saveint Addวิธีการsession.Deleteในremoveวิธีการ ( หน้าขาดเบรก HTML, แต่คุณสามารถค้นหาหน้าสำหรับรหัสที่เกี่ยวข้องเช่นpublic void Remove,public void Add ) รหัสนั้น "รู้สึกผิด" เหตุใดผู้เขียนจึงใช้รูปแบบ Repository - เป็นเพียงการสาธิตการใช้ NHibernate หรือว่าจำเป็นหรือเหตุผลอื่น ๆ ps พื้นหลังของฉันมาจาก Ruby on Rails โดยใช้ ActiveRecord ดังนั้นฉันจึงพยายามเข้าใจว่า NHibernate ทำงานอย่างไร / ใช้งานอย่างไร
13 c#  .net  nhibernate 

5
ถ้า Repository Pattern overkill สำหรับ ORM สมัยใหม่ (EF, nHibernate) สิ่งที่เป็นนามธรรมที่ดีกว่าคืออะไร?
ฉันเพิ่งอ่านข้อโต้แย้งจำนวนมากต่อต้านการใช้รูปแบบพื้นที่เก็บข้อมูลกับ Entity Framework ORM ที่ทรงพลังเนื่องจากมีการรวมฟังก์ชั่นที่คล้ายกับพื้นที่เก็บข้อมูลพร้อมกับฟังก์ชั่นหน่วยการทำงานเช่นกัน อีกข้อโต้แย้งต่อการใช้รูปแบบสำหรับสถานการณ์เช่นการทดสอบหน่วยคือรูปแบบที่เก็บเป็นสิ่งที่เป็นนามธรรมเนื่องจากการใช้งานทั่วไปมีประโยชน์มากขึ้น IQueryable ข้อโต้แย้งเกี่ยวกับการใช้รูปแบบพื้นที่เก็บข้อมูลมีเหตุผลสำหรับฉัน แต่วิธีการทางเลือกของ abstractions ที่แนะนำมักทำให้เกิดความสับสนมากขึ้นและดูเหมือนจะเกินความเป็นปัญหาเช่นกัน วิธีการแก้ปัญหาของ Jimmy Bogards ดูเหมือนจะเป็นการผสมผสานของนามธรรมที่ออกไป แต่ยังแนะนำสถาปัตยกรรมของเขาเอง https://lostechies.com/jimmybogard/2012/10/08/favor-query-objects-over-repositories/ อีกตัวอย่างของที่เก็บที่ไม่จำเป็น .... แต่ใช้สถาปัตยกรรมของฉัน! http://blog.gauffin.org/2012/10/22/griffin-decoupled-the-queries/ อื่น ... http://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework ฉันไม่พบวิธีการแทนที่ที่ชัดเจนหรือทางเลือกแทนวิธีการเก็บข้อมูลแบบ "ซับซ้อนมากเกินไป" ซึ่งไม่ได้มีการออกแบบตัวเองมากกว่า

3
DDD กับ ORM ตรรกะทางธุรกิจควรไปที่ใด
ฉันเคยใช้เครื่องมือ MDA (สถาปัตยกรรมที่ขับเคลื่อนด้วยโมเดล) ในอดีตที่เราทำโมเดลผ่าน UML และสิ่งนี้ได้สร้างเอนทิตีธุรกิจ (โมเดลโดเมนของเรา) และ ORM (การทำแผนที่ ฯลฯ ) ท่ามกลางสิ่งอื่น ๆ รหัสธุรกิจและบริการจำนวนมากที่ทำงานบนโดเมนนั้นเป็นส่วนหนึ่งของแบบจำลองและที่เก็บของเราส่งคืนเอนทิตีธุรกิจ (ดังนั้นจึงเป็นไปไม่ได้ที่จะเปลี่ยนไปใช้ ORM อื่น (ไม่ใช่ที่เราต้องการ)) อย่างไรก็ตามตอนนี้ฉันกำลังเริ่มโครงการและฉันต้องการคิดในแง่ของ DDD จนถึงตอนนี้ฉันรู้สึกราวกับว่าฉันวางตรรกะทางธุรกิจของฉันในรูปแบบโดเมนของฉันและผ่านที่เก็บฉันจะทำงานร่วมกับ ORM (ซึ่งฉันเคยเลือก) อย่างไรก็ตามถ้าฉันต้องการใช้เครื่องมือ MDA สำหรับส่วน ORM ของแอปพลิเคชันต่อไปโมเดลที่สร้างขึ้นที่นี่จะเป็นโลหิตจางมาก (เช่นไม่มีตรรกะทางธุรกิจ) ในทำนองเดียวกันถ้าฉันใช้ Entity framework (.net) หรือ NHibernate สำหรับ ORM ของฉันมันก็จะเป็นแบบจำลองโลหิตจางด้วย? ฉันไม่แน่ใจว่าคุณจะใช้ตรรกะทางธุรกิจที่ใดถ้าฉันใช้ NHibernate ฉันถูกต้องในการคิดแบบนี้ในคำอื่น ๆ ที่มี DDD ตรรกะทางธุรกิจทั้งหมดในโดเมนและเพียงแค่ใช้ ORM สำหรับการคงอยู่ผ่านทางที่เก็บ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.