نظرات مطالب
Soft Delete در Entity Framework 6
من از کتابخانه EntityFramework.Filters استفاده کردم به صورت زیر در رویداد OnModelCreating
modelBuilder.Entity<BaseEntity>().Filter("IsDeleted", condition => condition.Condition(row => row.IsDeleted == false));
DbInterception.Add(new FilterInterceptor());
همچنین از InitOfWork که در سایت معرفی کرده‌اید، استفاده کردم. این رو به چه صورت می‌توانم استفاده کنم؟
در لایه سرویس نمونه‌ای از جدول Category را به صورت زیر ایجاد میکنم و نحوه استفاده هم به صورت زیر می‌باشد
private readonly IDbSet<Category> _categories
_categories = _uow.Set<Category>();
_categories.ToList();
حال در این روش، کل تعداد لیست را بر می‌گرداند. اما از روش زیر که استفاده می‌کنم، فیلتر اعمال می‌شود.
var context = new DataLayer.MyContext();
context.EnableFilter("IsDeleted");
var categoiresModel = context.Set<Category>().ToList();
در کل استفاده از این روش فیلتر، در UnitOfWork به چه صورت می‌باشد؟
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 1 - NET Core. چیست؟
نکته تکمیلی :

فناور‌هایی که به زودی به NET Core. منتقل می‌شوند


یکسری از فناوری‌ها مانند XAML هنوز معادل NET Core. ندارند و لیست زیر قرار است از طرف مایکروسافت سورس باز شده و همچنین به NET Core. منتقل شود:
System.Data
System.DirectoryServices
System.Drawing
System.Transactions
.
.
.

در حال حاضر می‌توانید با استفاده از بسته‌ی زیر نیاز خودتان را نسبت به گزینه Bold شده (
System.Drawing  )، برطرف کنید :

"CoreCompat.System.Drawing": "1.0.0-beta006"

بنده برای تولید Captcha موجود در این پست از بسته مذکور استفاده کردم و بدون مشکل نیاز را تامین کرده است.

جزییات کامل را در این مخزن دنبال کنید.
نظرات مطالب
OpenCVSharp #18
چند نکته اینجا هست:
- این سری برای OpenCvSharp2 تهیه شد که نصب آن به صورت زیر است:
PM> Install-Package OpenCvSharp-AnyCPU
- هر چند OpenCvSharp3 مدتی هست که ارائه شده‌است، اما فاقد یکسری از قابلیت‌های OpenCvSharp 2 مانند مباحث contrib آن است (اطلاعات بیشتر و بحث بیشتر).
البته من مخزن کدهای این سری را به نگارش 3 به روز رسانی کرده‌ام (تمام مثال‌ها را)، ولی چون هنوز اصل نگارش 3 این کتابخانه تکمیل نشده‌است، یک سری از مثال‌های آن قابل اجرا نیست. اگر علاقمند بودید که تغییرات رخ داده را بررسی کنید، مراجعه کنید به لیست commits این پروژه.

خلاصه‌ی کلام
- ابتدا نگارش 2 را نصب کنید.
- سپس کدها را مطابق مطلب فوق یا پیش از commit آخر که مربوط به نگارش 2 است، اجرا کنید. مشکلی نخواهد بود.
نظرات مطالب
OpenCVSharp #18
همانطور که عرض کردم، الان در شاخه master، مثال‌ها به نگارش 3 ارتقاء پیدا کرده‌اند. این فضای نام هم مربوط به نگارش سوم است.
برای استفاده از آخرین مثال‌های مربوط به نگارش 2، مراجعه کنید به لیست commits در اینجا. بعد بر روی دکمه‌هایی به شکل <> که کلیک کنید:


 کل مخزن کد را در آن حالت به شما نمایش می‌دهد و حتی کل آن در این حالت قابل دریافت خواهد بود (همان دکمه‌ی clone or download سبز رنگ).
برای نمونه این لینک به آخرین نگارش 2 مخزن کد مربوط به مثال 18 (مطلب جاری) اشاره می‌کند.
نظرات مطالب
آموزش LINQ بخش دوم
یک نکته تکمیلی :Contextual Keyword
 کلمات کلیدی مربوط به LINQ را به تعبیر دقیق‌تر Contextual Keyword می‌گویند. به این خاطر که با کلمات کلیدی زبان C# که با ارائه سی شارپ 1 ارائه شدند کمی متفاوت هستند.این کلمات کلیدی اگر در مکان صحیح خود استفاده شوند رفتاری شبیه کلمات کلیدی دارند در غیر اینصورت کاربرد کلمات کلیدی را ندارند.کلمه کلیدی yeild اگر به همراه return  بیاید رفتار مورد انتظار ما را برآورده می‌کند در غیر اینصورت می‌تواند همچون نام متغیر در برنامه مورد استفاده قرار بگیرد.
var yield = 10;
yield return "1";
در اینجا می‌توانید لیست کاملی از Contextual Keyword‌ها را مشاهده کنید.
نظرات مطالب
بهینه‌سازی سایت برای شبکه‌های اجتماعی
به غیر از این موارد این خصوصیت مورد علاقه موتورهای جست و جو هم هست و به SEO کمک هم میکنه
در واقع باعث بهینه شدن جست و جوهای مفهومی میشه
سایت IMDB هم از این خصوصیت‌ها برای معرفی کارگردان، معرفی بازیگر و نام فیلم و.. استفاده میکنه و موتور جست و جویی مثل گوگل با استفاده از این خصوصیت‌ها جست و جوی مفهومی خوبی رو میتونه ترتیب بده و تنها فقط از الگوی جست و جو در متن استفاده نمیکنه بلکه میفهمه که این نام یک بازیگر یا فیلم یا .. است و حتی ارتباطات قوی‌تری بین موجودیت‌ها میتونه تشکیل بده
در این لینک  لیست کاملی از این جفت کلید و مقدار وجود داره.
نظرات مطالب
ایجاد نصاب یک قالب پروژه جدید چند پروژه‌ای در ویژوال استودیو
سلام؛ در بخش آخر که Visual Studio Content Installer  می باشد طبق لینک  ارجاعی شما برای vs 2013 پشتیبانی ندارد در قسمت نسخه‌های پشتیبانی 2005و2008و2010و2012  است ولی 2013 نیست و در صورت اجرای فایل .vsi  با خطای زیر مواجه می‌شویم :
Installation stoped becase the directory for projectType value did not exsit .. the projectType is invalid for your installation of Visual Studio 
در صورت حذف ProjectType/Attribute  نصب انجام می‌شود ولی در لیست پروژه‌ها نمایش داده نمی‌شود.
با تشکر از شما
نظرات مطالب
طراحی افزونه پذیر با ASP.NET MVC 4.x/5.x - قسمت دوم
سلام
من میخوام یک مجموعه از application‌های تحت وب داشته باشم که همگی یک نوع طراحی UI داشته باشند و یک منو کلی داشته باشم که کاربر‌ها بتون از اون به هریک از application‌ها هدایت بشوند منتها چند نکته وجود داره :
  1. همه این برنامه‌ها به لحاظ عملکردی یکسری مشترکات دارند ( مثلا احراز هویت ، لیست کاربرها و ....)
  2. هر کدوم از این برنامه‌ها باید بتونن مستقل طراحی بشن در عین حال که از یک شکل ui استفاده می‌کنند
  3. به راحتی بتونم یک برنامه به مجموعه برنامه هام اضافه کنم یا یکی ازش کم کنم یا یکی را غیر فعال کنم ( باید معماری scalable باشد
در واقع یه چیزی شبیه مجمو.عه نرم افزار‌های گوگل
به نظر شما روش ارائه شده در این صفحه بدرد من می‌خوره؟
اگر نه از چه معماری استفاده کنم؟
نظرات مطالب
Repository ها روی UnitOfWork ایده خوبی نیستند
پیشنهاد بنده برای فرار از نوشتن کدهای تکراری CRUD استفاده از یک سرویس جنریک در پروژه می‌باشد که در کمترین حالتش می‌تونه عملیات Insert و Update و  Delete    رو انجام بده و در متد Select نیز حداقل یک لیست از کل رکوردها خروجی بده.

بدین صورت لایه سرویس یک همچین شکلی میشه :
IGenericService<T>
GenericService<T> : IGenericService

IUserService : IGenericService<User>
UserService : GenericService<User>, IUserService
حال آنکه متدهای Add,Delete,GetAll,Update و بصورت Virtual ایجاد می‌نماییم تا در صورت نیاز (معمولا نیاز خواهیم داشت که متد Update رو در برخی موارد Override کنیم) بتونیم درون کلاس‌ها متدهای را Override کنیم.
بنده این تکنیک در پروژه عملی تست کرده ام و مشکلی نداشته ام
نظرات مطالب
استفاده از چند فرم در کنار هم در ASP.NET MVC
  public class RoleUserViewModel
    {
        public tblRole role { get; set; }
        public tblUser user { get; set; }

        public tblRoleUser roleuser { get; set; }

        //برای اینکه در صفحه برای نام کاربری و نام نقش دراپ دان لیست بگذاریم
        public IEnumerable<tblUser> username { get; set; }
        public IEnumerable<tblRole> rolename { get; set; }

    }
این هم کد ویومدل هست. که هر سه پارشیال رو با این ویومدل مقدارهی شدن