Entity auditing in CastleActiveRecord

In my Castle ActiveRecord based application I have a base class named ARSuperClass that all my domain entities except than EntityLogger inherit from it instead of inheriting from ActiveRecordBase. I have ModifyDate and CreateDate fields in ARSuperClass that must be updated each time an entity is created or updated. Additionally each creation/updating operations must be …

‫افزایش Performance در NHibernate با استفاده از اپراتورهای Projection

یکی از راه‌های توصیه شده برای افزایش Performance در Queryهای دیتابیس، پرهیز از استفاده‌های بی‌مورد از select * from some_table می‌باشد. راه حل توصیه شده استفاده از projection و برگرداندن صرفاً ستون‌های مورد نیاز از دیتابیس است. مثلاً باید از select col1, col2 from some_table استفاده شود. در همین راستا LINQ-to-NHibernate هم پشتیبانی خوبی از …

‫محدودیت‌های Castle ActiveRecord

Castle ActiveRecord یک کتابخانه مفید برای استفاده از NHibernate است. این کتابخانه هم کار mapping را مشابه Fluent NHibernate ساده می‌کند و هم کار مدیریت session و خیلی کارهای دیگر را خودش مدیریت می‌کند. به طوری که استفاده از NHibernate بسیار ساده‌تر شود. Castle ActiveRecord در واقع پیاده‌سازی Design Patternی به همین نام یعنی Active …

Second Level Cache in Castle ActiveRecord

Second level cache is different than first level cache. It acts on session factory level not each individual session. In order to setup second level cache in a Castle ActiveRecord application consider following points: 1. Settings of second level cache in Castle ActiveRecord is basically as same as NHibernate. 2. In addition of web.config/app.config settings, …

طرح اهدا کامپیوتر

اسفند هر سال وقتی که خانه تکانی‌ها و گردگیری‌های شروع می‌شود تعدادی وسایل اضافه و کم استفاده هم در منزل پیدا می‌شود. گاهی اوقات در کنار این وسایل، کامپیوترهای قدیمی و قطعات مازاد کامپیوتر مثل مانیتور یا دی وی دی درایو هم پیدا می‌شود. چه خوب است که هم زمان با پاکسازی منزل از این …

پیغام خطای کشنده

بعضی پیغام خطاها آنقدر سمج هستند و آن قدر منبع نامعلومی دارند که می‌توان به آنها لقب لعنتی، کشنده یا حتی دهن صاف کن داد. به تازگی یکی از این پیغام خطاهای کشنده برای من اتفاق افتاد. زمانی که در حال فعال‌سازی Caching سطح دوم برای یک برنامه‌ی مبتنی بر Castle ActiveRecord بودم دچار خطای …

‫کتاب LINQ in Action

یکی از عادت‌های من در این وبلاگ نوشتن درباره‌ی کتاب‌هایی است که خوانده‌ام. یکی از کتاب‌هایی که مدت‌ها پیش خواندن آن را شروع کردم کتاب LINQ in Action است. این کتاب را برای تکمیل اطلاعاتم راجع به LINQ شروع کردم چون حس می‌کردم چیزهایی که راجع به LINQ از کتاب Pro C# 2008 and the …

یاس فلسفی یک برنامه‌نویس

روزی که به عنوان یک دانشجوی نرم‌افزار وارد دانشگاه شدیم تصورمان این بود که به جز نرم‌افزار، برنامه‌نویسی و کامپیوتر چیزی نخواهیم دید. اما در عوض با سیلی از دروس مدار الکتریکی و الکترونیکی، ریاضی و فیزیک مواجه شدیم که عملاً باعث شد کلی از هدف اصلی‌مان باز بمانیم. دروس سیستم عامل و شبکه و …

‫تفاوت Load و Get در NHibernate

برای فراخوانی رکوردها از دیتابیس (بر اساس primary key) به حافظه دو راه در NHibernate وجود دارد. یکی Get و دیگری Load. متود Get برای دستیابی به رکورد مربوطه مستقیماً به cache یا database مراجعه می‌کند در حالی که متود Load تا زمانی که کسی propertyی غیر از id را فراخوانی نکرده به دیتابیس مراجعه …