‫۱۱ سال و ۴ ماه قبل، چهارشنبه ۲۲ خرداد ۱۳۹۲، ساعت ۰۱:۰۸
حاصل این رمزنگاری بر اساس کلیدهای موجود در کامپیوترهای مختلف متفاوت خواهد بود. بنابراین روی سرور باید رمزنگاری شود. اگر دسترسی مدیریتی دارید، روش خط فرمان مناسب است؛ اگر خیر، این روش با برنامه نویسی هم قابل اجرا است.
‫۱۱ سال و ۴ ماه قبل، دوشنبه ۲۰ خرداد ۱۳۹۲، ساعت ۱۷:۱۸
یک نکته تکمیلی
در مطلب فوق یک چنین تعریفی را مشاهده نمودید:
    @BundleConfig.AddStyles("~/Content/css",
                            "~/Content/bootstrap.css",
                            "~/Content/bootstrap-responsive.css",
                            "~/Content/Site.css"
                            )
در پوشه content، فایل‌های bootstrap.css و bootstrap.min.css هر دو با هم وجود دارند (اگر بسته نیوگت آن‌را نصب کنید).
در این بین، اگر فایل bootstrap.css را اندکی ویرایش کنید (مثلا نام فونت‌ها یا اندازه آن‌ها را تغییر دهید)، متوجه خواهید شد که تغییرات شما اصلا اعمال نمی‌شوند. علت چیست؟!
سیستم Bundling به صورت هوشمند در صورت وجود فایل‌های css.min، از آن‌ها استفاده خواهد کرد (حتی در حالت دیباگ) و نه از فایل bootstrap.css ذکر شده در تنظیمات. به همین جهت ممکن است مدتی سر درگم شوید که چرا هر تغییری را که اعمال می‌کنم، تاثیری ندارد!
بنابراین یا فایل‌های css.min را حذف کنید و یا مکان آن‌ها را تغییر دهید تا در کنار فایل‌های غیرفشرده شده پیش فرض نباشند.
‫۱۱ سال و ۴ ماه قبل، دوشنبه ۲۰ خرداد ۱۳۹۲، ساعت ۱۳:۱۵
- جواب شخصی: چنین کاری رو نمی‌کنم. چون مطابق آمار حداقل سایت جاری حدود یک درصد یا کمتر از بازدیدکنندگان این سایت کاربر غیر PC هستند که عملا در محاسبات به حساب نمیان. (واقع گرایی)
- جواب کلی: یک سری شبیه ساز رو از اینجا می‌تونید دریافت کنید. امکان یکپارچه سازی با VS.NET هم وجود دارد.
‫۱۱ سال و ۴ ماه قبل، یکشنبه ۱۹ خرداد ۱۳۹۲، ساعت ۲۲:۰۵
شعار این کتابخانه چنین چیزی هست: «Bootstrap is built on responsive 12-column grids». یعنی حالت پیش فرض طراحی آن 12 ستونی است.
اگر به فایل css آن مراجعه کنید، یک چنین عرض‌هایی قابل مشاهده است:
.span12 {
  width: 940px;
}
.span1 {
  width: 60px;
}
البته این‌ها برای حالت fixed است و نه fluid که بر اساس درصد تعریف شده
.row-fluid .span12 {
  width: 100%;
  *width: 99.94680851063829%;
}
container هم با عرض 940 پیکسل تعریف شده. همچنین یک GutterWidth را هم باید در بین ستون‌ها درنظر داشت. حالت پیش فرض:
@gridColumns:             12;
@gridColumnWidth:         60px;
@gridGutterWidth:         20px;
البته میشه مثلا عرض رو بیشتر از 940 تعریف کرد. برای اینکار باید css رو ویرایش و از ابزارهایی مانند less استفاده کرد و یا امکان سفارشی سازی اون هم هست.
‫۱۱ سال و ۴ ماه قبل، یکشنبه ۱۹ خرداد ۱۳۹۲، ساعت ۰۴:۲۸
مطلب جالبی است که کمتر مورد استفاده قرار می‌گیره. شاید ذکر مثال‌های دنیای واقعی اون در اینجا مکمل خوبی باشه. اگر دوستان هم مثالی مدنظرشون بود، لطفا عنوان کنند.
An easier way to manage INotifyPropertyChanged
Custom Explicit and Implicit Operators in C#
Why does this code work?
ASP.NET MVC Model binding with implicit operators
Forgotten C# language features: implicit operator  
How to fake Enums in EF 4 
‫۱۱ سال و ۴ ماه قبل، یکشنبه ۱۹ خرداد ۱۳۹۲، ساعت ۰۲:۱۱
- مقاله عنوان کرده اگر کار شما سورس باز است ترکیب فایده‌ای نداره چون مشخص است چکار کردید. (البته این رو برای ساده‌تر کردن کار خودش عنوان کرده!)
- key stretching یا هر روش دیگری، بحث و هدف اصلی من طرح یک نکته بود: از الگوریتم‌های هش عمومی مستقیما استفاده نکنید. روش پیچ و تاب آن باشد بر اساس روشی که انتخاب می‌کنید.
- من از روش ترکیبی استفاده می‌کنم. حتما هم استفاده می‌کنم. چون دقیقا می‌دونم اون کسانیکه این هش‌ها رو زمانیکه از دیتابیس شما بیرون کشیدند، چه ابزارهایی در اختیار دارند.
- حتی زمانیکه کار شما سورس باز است نیز از روش ترکیبی استفاده کنید. پردازش‌های موازی سنگین و استفاده از GPU برای الگوریتم‌های معمولی و متداول تهیه شده. حتی بانک‌های اطلاعاتی بزرگی که برای نگهداری هش‌های آماده تهیه شدن برمبنای هش‌های عمومی هستند. گیرم حتی اگر کار شما سورس باز باشد، تبدیل الگوریتم‌های ترکیبی آن به الگوریتم‌های بهینه قابل اجرای بر روی GPU کار هرکسی نیست.


استفاده مستقیم از الگور‌یتم‌های هش‌های متداول در یک پروژه عمومی با تعداد کاربر بالا = عین حماقت
‫۱۱ سال و ۴ ماه قبل، شنبه ۱۸ خرداد ۱۳۹۲، ساعت ۱۵:۲۴
- اگر دقت کرده باشید در کدهای فوق این متدها استاتیک تعریف شدن، یعنی مراحل چرخه طول عمر یک صفحه به آن‌ها اعمال نشده و اصلا جزئی از مباحث اعتبارسنجی صفحه جاری لحاظ نخواهند شد.
- در وب فرم‌ها استفاده از وب متدها یک روش برای کار با jQuery Ajax است. روش دوم استفاده از Generic handlerها و فایل‌های ashx است. در این موارد به علت استاتیک نبودن handlerهای تولیدی، می‌شود همه نوع اعتبارسنجی رو اعمال کرد اعم از روش Forms Authentication مثلا توسط context.Request.IsAuthenticated  یا حتی روش منسوخ شده استفاده از سشن‌ها برای اعتبارسنجی با پیاده سازی IRequiresSessionState.
- در مطلب فوق اصلا از MS Ajax استفاده نشده. اون هم جایگاه خودش رو در کاربردهای خاص خودش دارد.