مدیریت بهینهی سشن فکتوریساخت یک شیء SessionFactory بسیار پر هزینه و زمانبر است. به همین جهت لازم است که این شیء یکبار حین آغاز برنامه ایجاد شده و سپس در پایان کار برنامه تخریب شود. انجام اینکار در برنامههای معمولی ویندوزی (WinForms ،WPF و ...)، ساده است اما در محیط Stateless وب و برنامههای ASP.Net ، نیاز به راه حلی ویژه وجود خواهد داشت و تمرکز اصلی این مقاله حول مدیریت صحیح سشن فکتوری در برنامههای ASP.Net است.برای پیاده سازی شیء سشن فک ...
آشنایی با Automapping در فریم ورک Fluent NHibernateاگر قسمتهای قبل را دنبال کرده باشید، احتمالا به پروسه طولانی ساخت نگاشتها توجه کردهاید. با کمک فریم ورک Fluent NHibernate میتوان پروسه نگاشت domain model خود را به data model متناظر آن به صورت خودکار نیز انجام داد و قسمت عمدهای از کار به این صورت حذف خواهد شد. (این مورد یکی از تفاوتهای مهم NHibernate با نمونههای مشابهی است که مایکروسافت تا تاریخ نگارش این مقاله ارائه داده است. برای ...
استفاده از LINQ جهت انجام کوئریها توسط NHibernateنگارش نهایی 1.0 کتابخانهی LINQ to NHibernate اخیرا (حدود سه ماه قبل) منتشر شده است. در این قسمت قصد داریم با کمک این کتابخانه، اعمال متداول انجام کوئریها را بر روی دیتابیس قسمت قبل انجام دهیم.توسط این نگارش ارائه شده، کلیه اعمال قابل انجام با criteria API این فریم ورک را میتوان از طریق LINQ نیز انجام داد (NHibernate برای کار با دادهها و جستجوهای پیشرفته بر روی آنها، HQL : Hibernate Que ...
در این قسمت یک مثال ساده از insert ، load و delete را بر اساس اطلاعات قسمتهای قبل با هم مرور خواهیم کرد. برای سادگی کار از یک برنامه Console استفاده خواهد شد (هر چند مرسوم شده است که برای نوشتن آزمایشات از آزمونهای واحد بجای این نوع پروژهها استفاده شود). همچنین فرض هم بر این است که database schema برنامه را مطابق قسمت قبل در اس کیوال سرور ایجاد کرده اید (نکته آخر بحث قسمت سوم).یک پروژه جدید از نوع کنسول را به solution برنامه (همان NHSam ...
در ادامه، تعاریف سایر موجودیتهای سیستم ثبت سفارشات و نگاشت آنها را بررسی خواهیم کرد.کلاس Product تعریف شده در فایل جدید Product.cs در پوشه domain برنامه:namespace NHSample1.Domain{ public class Product { public int Id { get; set; } public string Name { get; set; } public decimal UnitPrice { get; set; } public bool Discontinued { get; set; } }}کلاس ProductMapping تعریف شده در فایل جدید ProductMapping.cs (توصی ...
آزمون واحد کلاس نگاشت تهیه شدهدر مورد آشنایی با آزمونهای واحد لطفا به برچسب مربوطه در سمت راست سایت مراجعه بفرمائید. همچنین در مورد اینکه چرا به این نوع API کلمه Fluent اطلاق میشود، میتوان به تعریف آن جهت مطالعه بیشتر مراجعه نمود.در این قسمت قصد داریم برای بررسی وضعیت کلاس نگاشت تهیه شده یک آزمون واحد تهیه کنیم. برای این منظور ارجاعی را به اسمبلی nunit.framework.dll به پروژه UnitTests که در ابتدای کار به solution جاری در VS.Net افزوده ب ...
NHibernate کتابخانهی تبدیل شده پروژه بسیار محبوب Hibernate جاوا به سی شارپ است و یکی از ORM های بسیار موفق، به شمار میرود. در طی تعدادی مقاله قصد آشنایی با این فریم ورک را داریم.چرا نیاز است تا از یک ORM استفاده شود؟تهیه قسمت و یا لایه دسترسی به دادهها در یک برنامه عموما تا 30 درصد زمان کل تهیه یک محصول را تشکیل میدهد. اما باید در نظر داشت که این پروسهی تکراری هیچ کار خارق العادهای نبوده و ارزش افزودهی خاصی را به یک برنامه اضافه نمی ...
دو سری ویدیوی رایگان آموزشی NHibernate در سال جاری در مجامع مرتبط ارائه شده است که دیدن آنها خالی از لطف نیست. حتی اگر از NHibernate هم نخواهید استفاده کنید مفاهیم unit testing ، refactoring و امثال آن در این مجموعهها به شکل بسیار مبسوطی توضیح داده شدهاند.سری اول:Summer of NHibernate Screencast Serieshttp://www.summerofnhibernate.com/سری دوم:تا این لحظه 5 ویدیوی مقدماتی NHibernate در سایت http://www.dimecasts.net/Casts/ByTag/NHibernate م ...