در بسیاری از پروژههای نرم افزاری ما ممکن است یک امکان (Feature) را برای بازهی زمانی خاصی بنا به درخواست مشتری یا ضوابط خودمان نیاز داشته باشیم و در زمان دیگری یا برای مشتری دیگری نیاز نداشته باشیم و باید قابلیت مورد نظر غیر فعال باشد. یا حتی ممکن است قابلیتی را به تازگی افزوده باشیم، ولی در زمان اجرا خطایی داشته باشد و مجبور باشیم فورا آن را از دسترش خارج کنیم. به این فرایند در اصلاح Feature Toggle میگویند که البته نامهای دیگری از ...
در اکثر شرکتهای بزرگ و متوسط نرم افزاری، بخش مشترکی از پروژهها تحت عنوان فریم ورک و یا پروژههای مشترک (Common) از پروژههای جاری فاکتور گرفته میشود و ارتباط با آنها با ارجاعی (Reference) به اسمبلی آنها انجام مشود. اما مشکل همیشگی این است که برای حفظ استقلال، مستقیما از پروژههای جاری به اسمبلیهای پایه ارجاع داده نمیشود؛ چون ممکن است بنا بر پایسته بودن نسخه پروژه جاری، قصد نداشته باشیم همیشه آخرین ورژن اسمبلیهای خارجی را دریافت کنیم، ...
امروز حین کدنویسی به یک مشکل نادر برخورد کردم. کلاسی پایه داشتم (مثلا Person) که یک سری کلاس دیگر از آن ارث بری میکردند (مثلا کلاسهای Student و Teacher).در اینجا در کلاس پایه بصورت اتوماتیک یک ویژگی(Property) را روی کلاسهای مشتق شده مقدار دهی میکردم؛ مثلا به این شکل: public class Person
{
public Person()
{
personId= this.GetType().Name + (new Random()).Next(1, int.MaxValue);
...
در Angular می شود یک سری Template و ساختار از پیش تعریف شده داشت و در هر زمان که نیاز بود مدلی را به آنها پاس داد و نمای HTML مورد نظر را تحویل گرفت. بطور مثال در فرم سازها یا همان فرمهای داینامیک ما نیاز داریم که مدل یک فرم (مثلا در فرمت JSON) را برای View ارسال کنیم و با استفاده از تواناییهای Angular بتوانیم فرم مورد نظر را نمایش دهیم و در صورت امکان تغییر دهیم. ViewModel فرم شما در MVC میتواند چیزی شبیه این باشد public cl ...
یکی از راهکارهای پیاده سازی IOC یا همان Inversion Of Control در پروژههای MVC استفاده از Unity و معرفی آن به DependencyResolver خود دات نت است. برای آشنایی با Unity و قابلیتهای آن میتوانید به اینجا و اینجا سر بزنید. اما برای استفاده از Unity در پروژههای MVC کافی است در Global یا فایل راه انداز (bootstrapper ) تک تک انتزاعها (Interface) را به کلاسهای مرتبط شان معرفی کنید. var container = new UnityContainer(); cont ...
از دغدغههای همیشگی در راه اندازی پرتالهای مبتنی بر شیرپوینت سیستم احراز هویت آن است. این سیستم بصورت پیش فرض بر مبنای Windows Authentication است و ناگفته پیداست این نوع احراز هویت تنها در شبکههای محلی کاربرد دارد آنهم در صورتی که همه کاربران و سطوح دسترسی، بدرستی در AD تعریف شده باشد و نیز یک سری مشکلات دیگر که بیشتر به توسعه شیرپوینت در شرکت و انتقال آن و انطباق آن با محیط پروژه برمیگردد.
به عبارت دیگر شما به ع ...