این روزها هیچکدام از فناوریهای دسترسی به داده بدون امکان یکپارچگی آنها با سیستمها و روشهای متفاوت caching ، مطلوب شمرده نمیشوند. ایده اصلی caching هم به زبان ساده به این صورت است : فراهم آوردن روشهایی جهت میسر ساختن دسترسی سریعتر به دادههایی که به صورت متناوب در برنامه مورد استفاده قرار میگیرند، بجای مراجعه مستقیم به بانک اطلاعاتی و خواندن اطلاعات از دیسک سخت.یکی از تفاوتهای مهم NHibernate با اکثر ORM های موجود داشتن دو سطح متفاو ...
اگر به Entity data model wizard در VS.Net 2010 دقت کرده باشید، گزینهی "Pluralize or singularize generated object names" نیز به آن اضافه شده است:این مورد از این جهت حائز اهمیت است که عموما نام جداول در بانک اطلاعاتی، جمع است و نام کلاس متناظر ایجاد شده برای آن در کدهای برنامه بهتر است مفرد باشد. برای مثال نام جدول، Customers است و نام کلاس آن بهتر است Customer تعریف گردد. به این صورت کار کردن با آن توسط یک ORM با معناتر خواهد بود؛ زیرا زما ...
استفاده از IIS در VS.NET و پروژههای ASP.NET داستان خودش را دارد. در نگارشهای 2002 و 2003 آن، تنها وب سرور قابل استفاده جهت کار با VS.NET همان IIS اصلی بود. مهمترین مشکل این روش، نیاز به داشتن دسترسی مدیریتی بر روی سیستم بود (که در بعضی از شرکتها، این مورد برای عموم کاربران ممنوع است) به همراه نصب جداگانه و تنظیمات مخصوص IIS ، صرفا جهت آزمایش یک برنامهی ساده؛ همچنین با توجه به اینکه IIS جزو کامپوننتها ویندوز بوده و هر نگارشی، IIS خاص ...
در زمان اولین بارگذاری NHibernate ، ساخت تمام نگاشتها صورت گرفته و همچنین session factory ایجاد میگردد. به همین جهت به کمک الگوی thread safe singleton نسبت به کش کردن آن در طول عمر یک برنامه استفاده میگردد.در برنامهای که در یک محیط کاری مورد استفاده قرار میگیرد این زمان اصلا مهم نیست، زیرا تنها یکبار باید انجام شود. اما به عنوان یک برنامه نویس شاید در طول روز صدها بار نیاز به باز و بسته کردن برنامه جهت آزمودن آن داشته باشیم و این مورد ...
دو تنظیم زیر را در نظر بگیرید:<add key="nhibernate-logger" value="NHibernate.Helper.Logging.LoggerFactory, NHibernate.Helper" />و یا<add name="StaticContentCacheModule" type="StaticContentCacheModule.StaticCache, StaticContentCacheModule"/>این نوع موارد را در فایلهای app.config و یا web.config زیاد میتوان یافت.الان فرض کنید کلاس StaticCache مربوط به StaticContentCacheModule فرضی فوق را به صورت دستی به برنامهی خود اضافه کرده ...
امکان اندازه گیری دقیق حجم ViewState در برنامههای ASP.NET WebForms وجود دارد (+) ، اما خوب، این روش یک ایراد مهم هم دارد. چند نفر حاضرند تمام صفحات خود را ویرایش کرده و ارث بری ذکر شده را پیاده سازی کنند؟یک روش دیگر اعمال آن به تمام صفحات، استفاده از پوشهی استاندارد App_Browsers و سپس ایجاد فایلی مانند ViewStateManager.browser میباشد:<!--Applies to all pages--><browsers><browser refID="Default"> <controlAdapters> ...
مباحث eager fetching/loading (واکشی حریصانه) و lazy loading/fetching (واکشی در صورت نیاز، با تاخیر، تنبل) جزو نکات کلیدی کار با ORM های پیشرفته بوده و در صورت عدم اطلاع از آنها و یا استفادهی ناصحیح از هر کدام، باید منتظر از کار افتادن زود هنگام سیستم در زیر بار چند کاربر همزمان بود. به همین جهت تصور اینکه "با استفاده از ORMs دیگر از فراگیری SQL راحت شدیم!" یا اینکه "به من چه که پشت صحنه چه اتفاقی میافته!" بسی مهلک و نادرست است!در ادامه ...
زمانیکه خاصیتی به یکی از کلاسهای نگاشتهای تعریف شده اضافه میشود یا حذف میگردد، دقیقا باید این به روز رسانی در سمت بانک اطلاعاتی هم انجام شود. امکان تهیه و همچنین اعمال اسکریپت نهایی تولید database schema مهیا است، اما ممکن است به هر علتی این کار فراموش شود. اکنون سؤال این است که آیا میتوان سریع بررسی کرد که دیتابیس مورد استفاده با نگاشتهای برنامه همخوانی و تطابق دارد؟جهت پاسخ به این سؤال بهترین راه ایجاد یک کوئری Select بر اساس تمام ...
مطلبی که در ذیل آورده شده صرفا یک برداشت شخصی است بر اساس نقل قولها و بررسی وضعیت اعضای تیمهای مرتبط با فناوریهای مختلف بکار گرفته شده در دات نت فریم ورک و ... نه رسمی!ADO.NET ، DataSet ، DataTable و امثال آن: مرده! (مرده به معنای اینکه دیگر توسعهی جدی نخواهد یافت)ADO.NET اولین فناوری دسترسی به دادهها در دات نت فریم ورک بود/است. مدل طراحی آن هم بر اساس امکانات زبانهای آن زمان (زمان شروع به کار دات نت) بود (و تا دات نت 4 هم تغییر عمد ...
اگر مطلب "ذخیره سازی SQL تولیدی در NH3" را دنبال کرده باشید که یک مثال عملی از "NHibernate 3.0 و عدم وابستگی مستقیم به Log4Net" بود، خروجی حاصل از آن به صورت زیر است:---+ 12/29/2010 05:35:59.75 +---SQL ...---+ 12/29/2010 05:35:59.75 +---SQL ...و پس از مدتی این فایل هیچ حسی را منتقل نمیکند! یک سری SQL که لاگ شدهاند. مشخص نیست کدام متد در کدام کلاس و کدام فضای نام، سبب صدور این عبارت SQL ثبت شده، گردیده است.خوشبختانه در دات نت فریم ورک م ...