یکی از روشهای تهیهی برنامههای چند مستاجری ، ایجاد بانکهای اطلاعاتی مستقلی به ازای هر مشتری است؛ یا نمونهی دیگر آن، برنامههایی هستند که اطلاعات هر سال را در یک بانک اطلاعاتی جداگانه نگهداری میکنند. در ادامه قصد داریم، نحوهی کار با این بانکهای اطلاعاتی را به صورت همزمان، توسط EF Code first و در حالت استفاده از الگوی واحد کار و تزریق وابستگیها، به همراه فعال سازی خودکار مباحث migrations و به روز رسانی ساختار تمام بانکهای اطلاعاتی ...
سشنها در برنامههای وب، یکی از وابستگیهای استاتیکی هستند که میتوان آنها را از طریق تزریق وابستگیها، جهت بالا بردن قابلیت آزمون پذیری برنامه، تامین کرد. همچنین اگر از سشنها برای نمونه در برنامههای ASP.NET MVC استفاده کنید، مقدار آنها در سازندهی کنترلرها نال خواهند بود ؛ از این جهت که در زمان نمونه سازی یک کنترلر توسط IoC Container، کار مدیریت سشنها صورت نمیگیرد و اگر در این بین سرویسی نیاز به سشن داشته باشد، دیگر وهله سازی نخ ...
سناریویی وجود دارد که در آن شما میخواهید تنها یک کار را انجام دهید، ولی برای انجام آن n روش وجود دارد. برای مثال قصد مرتب سازی دارید و برای اینکار روشهای مختلفی وجود دارند. برای حل این مساله پیشتر از الگوی طراحی استراتژی استفاده نمودیم.( مطالعه بیشتر در مورد الگوی طراحی استراتژی ) حال به سناریویی برخورد کردیم که بصورت زیر است: میخواهیم یک کار را انجام دهیم ولی برای انجام این کار تنها برخی بخشهای کار با هم متفاوت هستند. برای مثال قصد ...
در این نوشتار قصد داریم تا Theme ویژوال استودیو 2013 را برای برنامههای ویندوز شبیه سازی کنیم. در مرحله اول یک پروژه از نوع ClassLibrary میسازیم و پس از آن یک کلاس که از کلاس ToolStripProfessionalRenderer ارث بری کند را ایجاد میکنیم. در اینجا ما نام کلاس را BlueMenuStrip انتخاب میکنیم. از این کلاس برای تغییر رنگ منوها استفاده میشود. سپس متد OnRenderMenuItemBackground آنرا Override میکنیم. using System.Drawing;
using Sys ...
در قسمت قبلی مبحث پیاده سازی ساختمان (ساختار) درختهای جستجوی دودویی
را به پایان رساندیم. در این قسمت قرار است بر روی درخت متوازن بحث کنیم و
آن را پیاده سازی نماییم. درخت متوازن
همانطور که دیدید، عملیات جستجو روی درخت جستجوی دو دویی به مراتب
راحت و آسانتر است؛ ولی با این حال این درخت در عملیاتی چون درج و حذف،
یک نقص فنی دارد و آن هم این است که نمیتواند عمق خ ...
قبل از مطالعهی این مطلب، حتما الگوی طراحی Factory Method را مطالعه نمایید. همانطور که در الگوی طراحی Factory Method مشاهده شد، این الگو یک عیب دارد، آن هم این است که از کدام Creator باید استفاده شود و مستقیما در کد بایستی ذکر شود. class ConcreteCreator : Creator
{
public override IProduct FactoryMethod(string type)
{
switch (type)
{
case "A": return new Concrete ...
سناریوی زیر را در نظر بگیرید: فرض کنید از شما خواسته شده است تا یک پردازشگر متن را بنویسید. خوب در این پردازشگر با یکسری کاراکتر روبرو هستید که هر کاراکتر احتمالا آبجکتی از نوع کلاس خود میباشد؛ برای مثال آبجکت XYZ که آبجکتی از نوع کلاس A هست و برای نمایش کاراکتر A استفاده میشود. این آبجکتها دارای دو دسته خصیصه هستند: ( مطالعه بیشتر ) خصیصههای ثابت: یعنی همه کاراکترهای A دارای یک شکل مشخص هستند. در واقع مشخصات ذاتی آبجکت میبا ...
همانطور که در قسمت قبلی گفتیم، در این قسمت قرار است به پیاده سازی درخت جست و جوی دو دویی مرتب شده بپردازیم. در مطلب قبلی اشاره کردیم که ما متدهای افزودن، جستجو و حذف را قرار است به درخت اضافه کنیم و برای هر یک از این متدها توضیحاتی را ارائه خواهیم کرد. به این نکته دقت داشته باشید درختی که قصد پیاده سازی آن را داریم یک درخت متوازن نیست و ممکن است در بعضی شرایط کارآیی مطلوبی نداشته باشد. همانند مثالها و پیاده سازیهای قبلی، دو کلاس د ...
فرض کنید در حال پختن یک کیک هستید. ابتدا کیک را میپذید و سپس آن را تزیین میکنید. عملیات پختن کیک، فرآیند ثابتی است و تزیین کردن آن متفاوت. گاهی کیک را با کاکائو تزیین میکنید و گاهی با میوه و غیره. پیش از اینکه سناریو را بیش از این جلو ببریم، وارد بحث کد میشویم. طبق سناریوی فوق، فرض کنید کلاسی بنام Prototype دارید که این کلاس هم از کلاس انتزاعی APrototype ارث برده است. در ادامه یک شیء از این کلاس میسازید و مقادیر مختلف آن را تنظیم کرد ...
در روزهای اولی که با MVC آشنا شدم، این سؤال برایم پیش میآمد که یک ViewBag چطور میتواند به صورت پویا مقادیر را داخل خودش نگهداری کند؟ بعد از جستجو مشخص شد که ViewBag در حقیقت یک شیء Dynamic است. در این نوشتار قصد داریم نحوهی کار یک ViewBag را نمایش دهیم. قبل از هر چیز باید بگویم که ViewBag تنها یک شیء dynamic نیست. اگر آن را از نوع dynamic تعریف و سپس یک شی را به آن Bind کنیم، در هنگام اجرای برنامه استثنای Cannot perform runtime bind ...