‫۱۲ سال و ۳ ماه قبل، چهارشنبه ۲۱ تیر ۱۳۹۱، ساعت ۱۸:۵۶
با سلام و خسته نباشید خدمت استاد نصیری
من برنامه ام رو با code first  و الگوی UnitOfWork که شما مطرح کردید نوشتم که واقعاٌ عالی و لذت بخش هست.
مشکلی که هست اینه که اگه بخوام از این امکان jqueryAjax در برنامه خودم استفاده کنم می‌بایست userServiice تعریف شده رو در یک متد استاتیک(با توجه به مطلب بالا) استفاده کنم که اینکار انجام نمیشه.ممنون میشم کمکم کنید. 
‫۱۲ سال و ۳ ماه قبل، چهارشنبه ۱۴ تیر ۱۳۹۱، ساعت ۰۰:۳۸
با تشکر از مطالب پر بارتون
مهندس جهت تکمیل این بحث و کامل شدن مسئله امنیتی می‌توان این مطلب شما را نیز به عنوان تکمیل کننده این بحث در نظر گرفت؟
حذف هدرهای مربوط به وب سرور از یک برنامه‌ی ASP.Net
‫۱۲ سال و ۳ ماه قبل، سه‌شنبه ۱۳ تیر ۱۳۹۱، ساعت ۱۲:۴۵
ممنون از مطالب خوبتون
امیدوارم به همین شکل مطلوب ادامه داشته باشه و بهتر از اون ، به زودی شاهد چاپ کتابتون باشیم.
‫۱۲ سال و ۳ ماه قبل، چهارشنبه ۷ تیر ۱۳۹۱، ساعت ۱۵:۱۸
بله ، البته. هم کامل هم به روز.
من هر روز دارم از این مطالب استفاده میکنم و واقعاٌ عالیه.

بازم ممنون.
‫۱۲ سال و ۳ ماه قبل، چهارشنبه ۷ تیر ۱۳۹۱، ساعت ۱۴:۳۹
پس فعلاٌ راهی برای دریافت مقالات کامل یک بخش وجود ندارد؟
‫۱۲ سال و ۳ ماه قبل، چهارشنبه ۷ تیر ۱۳۹۱، ساعت ۱۴:۱۹
با سلام خدمت استاد نصیری عزیز

من این برنامه  رو نصب کردم ولی وقتی این وبلاگ رو جسنجو میکنه ، پس از پیدا کردن وبلاگ تمامی یافته‌های مطالب رو صفر نشون میده و نمیشه مطلبی رو دریافت کرد.  
‫۱۲ سال و ۴ ماه قبل، سه‌شنبه ۳۰ خرداد ۱۳۹۱، ساعت ۱۸:۵۸
مثل همیشه کامل و بی نقص
عالی بود.ممنونم.
‫۱۲ سال و ۴ ماه قبل، سه‌شنبه ۳۰ خرداد ۱۳۹۱، ساعت ۱۶:۵۰
با سلام و تشکر از زحمات استاد نصیری
من چند روز پیش مطلبی رو راجع به ساخت attribute برای compare validation در روش code first عنوان کردم(البته در asp.net web form).که در واقع اصلی‌ترین کاربردش همون کاربرد معروف مقایسه رمز عبور و تکرار رمز عبور هست. یه سری کارایی در این زمینه انجام دادم و خواستم در مورد مشکل مربوطه و در کل ، صحیح یا غلط بودن این روش کمکم کنید.
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = true, Inherited = true)]
    public  class CompareAttribute : ValidationAttribute
    {
        public CompareAttribute(string originalProperty, string confirmProperty)
        {
            OriginalProperty = originalProperty;
            ConfirmProperty = confirmProperty;
        }
        public string ConfirmProperty
        {
            get;
            private set;
        }
        public string OriginalProperty
        {
            get;
            private set;
        }
        public override bool IsValid(object value)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
            return String.Equals(((User)value).Password, ((User)value).RepeatPassword);
        }
    }
    
تا اینجا یه کلاس تعریف شده که خیلی خلاصه Validation Attribute رو پیاده سازی کرده.این هم از کلاس User ، فقط در حد تعریف property‌های لازم این مثال
 //[CompareAttribute("Password", "RepeatPassword", ErrorMessage = "Not Compare!")]
    public class User
    {
        public Int64 UserId { get; set; }

 [Required(ErrorMessageResourceName = "Password", ErrorMessageResourceType = typeof(ErrorMessageResource))] public String Password { get; set; }

 [NotMapped] [Required(ErrorMessageResourceName = "RepeatPassword", ErrorMessageResourceType = typeof(ErrorMessageResource))] //[CompareAttribute("Password","RepeatPassword" , ErrorMessage = "Not Compare!")] public String RepeatPassword { get; set; } }
مشکل اصلی استفاده از همین compare attribute  هست که ساخته شده .
وقتی اونو بالای کلاس User میزارم کار میکنه.ولی خب این یه کار خیلی زشتیه! چون به ازای همه property‌ها اجرا میشه.ولی وقتی اونو تو جای اصلیش که همون بالای repeat password هست میزارم کار نمیکنه.
یه جورایی مشکل از اینه که نمیشه انگار مقدار property رو به این سمت پاس داد.ولی در حالتی که بالای کلاس میزارمش چون خود کلاس رو پاس میده ، طبیعتاٌ
اسم property‌ها رو هم پیدا میکنه.
ممنون میشم راهنماییم کنید .