نگاشت IDictionary در Fluent NHibernate
نگاشت خودکار مجموعه‌ها در Fluent NHibernate ساده است و نیاز به تنظیم خاصی ندارد. برای مثال IList به صورت خودکار به Bag ترجمه می‌شود و الی آخر.البته شاید سؤال بپرسید که این Bag از کجا آمده؟ کلا 6 نوع مجموعه در NHibernate پشتیبانی می‌شوند که شامل Array، Primitive-Array ، Bag ، Set ، List و Map هستند؛ این‌ اسامی هم جهت حفظ سازگاری با جاوا تغییر نکرده‌اند و گرنه معادل‌های آن‌ها در دات نت به این شرح هستند:Bag=IListSet=Iesi.Collections.ISetList= ...
پیاده سازی الگوی واحد کار در NHibernate
جهت تکمیل بحث الگوی مخزن در NH ، می‌توان به مطالب ذیل نیز مراجعه کرد:Unit of work and Repository Pattern with nHibernate and linq – IUnit of work and Repository Pattern with nHibernate and linq – IIهمچنین پروژه مرتبط با مطالب فوق هم از این آدرس قابل دریافت است.
استفاده از فیلدهای XML در NHibernate
در مورد طراحی یک برنامه "فرم ساز" در مطلب قبلی بحث شد ... حدودا سه سال قبل اینکار را برای شرکتی انجام دادم. یک برنامه درخواست خدمات نوشته شده با ASP.NET که مدیران برنامه می‌توانستند برای آن فرم طراحی کنند؛ فرم درخواست پرینت، درخواست نصب نرم افزار، درخواست وام، درخواست پیک، درخواست آژانس و ... فرم‌هایی که تمامی نداشتند! آن زمان برای حل این مساله از فیلدهای XML استفاده کردم.فیلدهای XML قابلیت نه چندان جدیدی هستند که از SQL Server 2005 به بعد ...
فیلدهای پویا در NHibernate
یکی از قابلیت‌های جالب NHibernate امکان تعریف فیلدها به صورت پویا هستند. به این معنا که زیرساخت طراحی یک برنامه "فرم ساز" هم اکنون در اختیار شما است! سیستمی که امکان افزودن فیلدهای سفارشی را دارا است که توسط برنامه نویس در زمان طراحی اولیه آن ایجاد نشده‌اند. در ادامه نحوه‌ی تعریف و استفاده از این قابلیت را توسط Fluent NHibernate بررسی خواهیم کرد.در اینجا کلاسی که قرار است توانایی افزودن فیلدهای سفارشی را داشته باشد به صورت زیر تعریف می‌شود ...
استفاده از Dialect سفارشی در NHibernate
Dialects در NHibernate کلاس‌هایی هستند جهت معرفی تعاریف ویژگی‌های خاص بانک‌های اطلاعاتی مختلف؛ مثلا SQL Server 2008 چه ویژگی‌های جدیدی دارد یا SQL Server CE 4.0 که جدیدا ارائه شده، امکان تعریف offset را در کوئری‌های خود میسر کرده (چیزی که قرار است در نگارش بعدی SQL Server اصلی(!) در دسترس باشد) ، اکنون چگونه می‌توان این ویژگی را فعال کرد (باید Dialect آن به روز شود و ... همین). یک سری Dialect از پیش تعریف شده هم برای اکثر بانک‌های اطلاعات ...
QueryOver Extensions
جهت تکمیل مطلب قبل (+)، می‌توان به ازای تمام توابع SQL موجود و همچنین تمام حالت‌های اعمال محدودیت مانند مساوی، بزرگتر، کوچکتر و امثال آن، extension method نوشت. یا اینکه یک متد داشت که بتوان پارامترهای آن را تنظیم کرد. به همین جهت کتابخانه زیر را تهیه کرده‌ام که از آدرس زیر قابل دریافت است:QueryOverSqlFuncsExtsنحوه استفاده:ابتدا باید به NH معرفی شود (یکبار در ابتدای کار برنامه):RegistrExt.RegistrMyQueryOverExts();سپس استفاده از آن به سادگی ...
QueryOver در NHibernate و تفاوت‌های آن با LINQ to NH
در NHibernate چندین و چند روش، جهت تهیه کوئری‌ها وجود دارد که QueryOver یکی از آن‌ها است (+). QueryOver نسبت به LINQ to NH سازگاری بهتری با ساز و کار درونی NHibernate دارد؛ برای مثال امکان یکپارچگی آن با سطح دوم کش. هر چند ظاهر QueryOver با LINQ یکی است، اما در عمل متفاوتند و راه و روش خاص خودش را طلب می‌کند. برای مثال در LINQ to NH می‌تواند نوشت x.Property.Contains اما در QueryOver متدی به نام contains قابل استفاده نیست (هر چند در Intelli ...
فعال سازی سطح دوم کش در Fluent NHibernate
سطح اول کش در NHibernate در یک تراکنش معنا پیدا می‌کند (+)؛ اما نتایج حاصل از اعمال سطح دوم (+) آن، در اختیار تمام تراکنش‌های جاری برنامه خواهند بود. در ادامه قصد داریم نحوه فعال سازی سطح دوم کش NHibernate را توسط Fluent NHibernate بررسی کنیم.الف) دریافت کش پروایدربرای این منظور به صفحه اصلی آن در سایت سورس فورج مراجعه نمائید(+). اگر به علت تحریم‌ها امکان دریافت فایل‌های مرتبط را نداشتید از این برنامه استفاده کنید(+). پس از دریافت، می‌خواه ...
NH 3.2 و تاثیر آن بر آینده‌ی FHN
در این عنوان، NH همان NHibernate است و FHN همان Fluent NHibernateنگارش آزمایشی NH 3.2 هم اکنون در دسترس است و یکی از مهمترین مباحثی را که پوشش داده، جایگزین کردن فایل‌های XML تهیه نگاشت‌ها با کدنویسی است. دقیقا چیزی شبیه به Fluent NHibernate البته اینبار از یک کتابخانه دیگر به نام ConfOrm کدها یکی شده‌اند.باید توجه داشت که نگارش 3.2 خاصیت AutoMapping مربوط به FHN را پشتیبانی نمی‌کند (یا هنوز در این نگارش به این حد نرسیده است)، بنابراین نمی ...
مکان اصلی یافتن آخرین نگارش‌های Fluent NHibernate
اگر علاقمند باشید که به آخرین نگارش‌های Fluent NHibernate دسترسی داشته باشید، مکان اصلی نگهداری و Build آن‌ها در سایت teamcity.codebetter.com می‌باشد. ثبت نام در آن رایگان است و سپس در آدرس ذیل می‌توانید آخرین Build ها را مشاهده و دریافت کنید:Fluent NHibernate v1.x (NH3.x)برای نمونه:fluentnhibernate-NH3.1-source-1.2.0.705.zipfluentnhibernate-NH3.1-binary-1.2.0.705.zipfluentnhibernate-docs-1.2.0.705.zip