NHibernate - สถาปัตยกรรม
ปัจจุบันระบบจำนวนมากได้รับการออกแบบด้วยสถาปัตยกรรมแบบหลายชั้น NHibernate ยังมีและทำงานได้ดีกับการออกแบบนั้น
สถาปัตยกรรมชั้น
สถาปัตยกรรมแบบเลเยอร์แบ่งระบบออกเป็นกลุ่มต่างๆโดยแต่ละกลุ่มมีโค้ดที่ระบุพื้นที่ปัญหาเฉพาะและกลุ่มเหล่านี้เรียกว่าเลเยอร์ แอปพลิเคชันระดับองค์กรส่วนใหญ่ใช้high-level application architecture ที่ประกอบด้วยสามชั้น -
- เลเยอร์การนำเสนอ
- ชั้นธุรกิจ
- เลเยอร์ความคงอยู่
ตัวอย่างเช่นเลเยอร์อินเทอร์เฟซผู้ใช้ซึ่งเรียกอีกอย่างว่าเลเยอร์การนำเสนออาจมีโค้ดแอปพลิเคชันทั้งหมดสำหรับการสร้างเว็บเพจและการประมวลผลอินพุตของผู้ใช้
ประโยชน์ที่สำคัญอย่างหนึ่งของวิธีการแบ่งเลเยอร์คือคุณสามารถทำการเปลี่ยนแปลงกับเลเยอร์หนึ่งได้บ่อยครั้งโดยที่เลเยอร์อื่น ๆ ไม่หยุดชะงักอย่างมีนัยสำคัญจึงทำให้ระบบต่างๆ lesser fragile and more maintainable.
เลเยอร์การนำเสนอ
เป็นชั้นบนสุดซึ่งมีรหัสที่รับผิดชอบในการวาดส่วนติดต่อผู้ใช้หน้ากล่องโต้ตอบหรือหน้าจอและรวบรวมข้อมูลของผู้ใช้และควบคุมการนำทาง
ชั้นธุรกิจ
ชั้นธุรกิจมีหน้าที่รับผิดชอบในการดำเนินการตามกฎทางธุรกิจหรือข้อกำหนดของระบบที่ผู้ใช้เข้าใจว่าเป็นส่วนหนึ่งของโดเมนปัญหา
นอกจากนี้ยังนำโมเดลที่กำหนดโดยเลเยอร์การคงอยู่มาใช้ซ้ำ
เลเยอร์ความคงอยู่
เลเยอร์การคงอยู่ประกอบด้วยคลาสและส่วนประกอบที่รับผิดชอบในการบันทึกและดึงข้อมูลแอปพลิเคชัน
เลเยอร์นี้ยังกำหนดการแมประหว่างคลาสโมเดลและฐานข้อมูล NHibernate ถูกใช้เป็นหลักในเลเยอร์นี้
ฐานข้อมูล
- ฐานข้อมูลอยู่นอกแอปพลิเคชัน. NET
- เป็นการแสดงสถานะของระบบตามความเป็นจริงและต่อเนื่อง
- หากใช้ฐานข้อมูล SQL ฐานข้อมูลจะรวมสคีมาเชิงสัมพันธ์และโพรซีเดอร์ที่เก็บไว้
คลาส Helper / Utility
ทุกแอปพลิเคชันมีชุดของคลาสผู้ช่วยหรือยูทิลิตี้ที่รองรับเลเยอร์อื่น ๆ เช่นวิดเจ็ต UI คลาสการส่งข้อความคลาส Exception และยูทิลิตี้การบันทึก
องค์ประกอบเหล่านี้ไม่ถือว่าเป็นเลเยอร์เนื่องจากไม่ปฏิบัติตามกฎสำหรับการพึ่งพาระหว่างชั้นในสถาปัตยกรรมแบบเลเยอร์
สถาปัตยกรรม NHibernate
เป็นมุมมองระดับสูงของแอปพลิเคชัน NHibernate และคุณยังสามารถเห็นสถาปัตยกรรม NHibernate ที่เรียบง่าย
รหัสแอปพลิเคชันใช้ NHibernate ISession และ IQuery API สำหรับการดำเนินการคงอยู่และมีไว้เพื่อจัดการธุรกรรมฐานข้อมูลเท่านั้นโดยใช้ NHibernate ITransaction API