اشتراک‌ها
گیت لب: سایت دیگری برای داشتن مخازن رایگان

سایت بیت باکت یکی از بهترین سایت‌های مخزن گیت رایگان است که تا 5 نفر می‌توان به صورت خصوصی از آن بهره برد ولی  به دلیل مشکلاتی که در isp ما بود، استفاده آن بدون پروکسی ممکن نبود، بدین جهت به سراغ گیت لب رفتم. کار کردن با آن آسان، دارای امکانات متنوع و قابلیت انتقال مخازن از گیت هاب، بیت باکت ، گوگل کد و ... را نیز داراست.

گیت لب: سایت دیگری برای داشتن مخازن رایگان
نظرات مطالب
چک لیست تهیه یک هاست خوب برای تازه کاران
هزینه‌ی سنگین ترافیک : این مورد آن قدر به وضوح پیداست که شما را به کل برای هر نوع خریدی پشیمان می‌کند؛ مگر اینکه پولتان از جایی تامین میشود. ادارات دولتی عموما این نوع هاست را بر میدارند و یا سایت‌های اشتراکی که منابع زیادی را مصرف نمی‌کنند و یا شرکت‌ها یا اشخاصی که پول تامین را دارند.
جهت به روزرسانی مطلب این نکته رو هم ذکر کنم مدتی است که هزینه ترافیک سرورهای ایران پایین آمده است و دیگر مشکل بالا مدنظر نیست. حداقل در پلن‌های مورد استفاده خودم تفاوت قیمتی مشاهده نکردم.

نظرات مطالب
بهینه سازی برنامه‌های وب ASP.NET برای موتورهای جستجو (SEO)
Request.UrlReferrer را آنالیز کنید. مقدار آن مشخص می‌کند که مثلا شخص از گوگل است یا سایت‌های جستجوی دیگر. بعد بر این اساس، کوئری استرینگ q آن‌را یافته و سپس شخص را به صفحه‌ی جستجو هدایت کنید:
// for Google
var urlReferrer = Request.UrlReferrer.ToString();
var query = HttpUtility.ParseQueryString(urlReferrer);
var searchQuery = query["q"];
یک نمونه‌ی کاملتر
نظرات مطالب
اعتبار سنجی سمت کاربر wysiwyg-editor ها در ASP.NET MVC
- در مورد پروژه‌های سایت‌های ثالث، به issue tracker آن‌ها مراجعه کنید و سپس درخواست دهید تا متد removeAllTagsAndTrim فوق را هم تحت عنوان یک گزینه‌ی جدید اضافه کنند.
- در مورد موضوع بحث جاری، در فایل jquery.validate.js سه متد minlength ، maxlength و rangelength برای بررسی طول حروف وارد شده، مورد استفاده قرار می‌گیرند. بازنویسی آن‌ها جهت اعمال متد removeAllTagsAndTrim، دقیقا شبیه به بازنویسی متد required است که در بحث جاری ملاحظه کردید.
نظرات مطالب
آشنایی و بررسی ابزار Glimpse
glimpse و  Miniprofiler هر دو با Ef6 مشکل دارند . گرچه در سایت‌های برنامه‌های فوق عنوان شده که Ef6 را پوشش میدهند اما هر کدوم به نحوی باگی دارند. از اونجایی که در Ef6 با Rdbms اسکیوال CE کار می‌کنم و همانند Sql server پروفایلری نداره که دستورات ارسالی را بشه دید شما در Ef6 به غیر از دو پروفایل ذکر شده از چه پروفایلری استفاده می‌کنید؟
نظرات مطالب
وب‌پارت اسلاید متحرک در شیرپوینت 2010
نکته‌ای عمومی در مورد تمام محصولات مایکروسافت:
«اگر کپی مطابق اصل خطای مشاهده شده را در جستجوی گوگل paste کنید و بر روی دکمه جستجو کلیک نمائید، در همان صفحه اول به جواب خواهید رسید»
این خطاها و این جملات بارها در سایت‌های مختلف تکرار شدن. چون تغییری هم نخواهند کرد، به عنوان یک مرجع رفع اشکال مورد استفاده قرار می‌گیرند.
مثلا همین عبارت بالا را که جستجو کنید به این راه حل خواهید رسید.
نظرات مطالب
OpenID چیست؟
فکر نمی‌کنم بشه
چون Active Directory با Domain تنظیم میشه
اما این حالت احراز هویت روی فرم تنظیم میشه
برای SSO مطلب توی همین سایت هست در واقع توی اون روش ما با یک اکانت که توی یک سایت داریم از سایت‌های دیگه روی همون سرویس استفاده میکنیم و میشه گفت حالت اختصاصی داره
اما توی این حالت شما با هر سایتی که این قابلیت داشته باشه میتونی کار کنی
مطالب
فید اشتراک‌های من در گوگل ریدر
مدتی لیست مطالب مورد علاقه را به شکل هفتگی در این سایت ارائه دادم (تازه‌های هفته ...)، سپس تبدیل شد به ارائه‌ی همان‌ها در سایت‌های به اشتراک گذاری لینک و الان هم به نظر من بهترین روش، استفاده از گزینه‌ی Share در گوگل ریدر است. به این صورت یک فید خودکار از موارد به اشتراک گذاشته شده را می‌توان تهیه کرد:


مطالب
اندکی به روز رسانی

لیست وبلاگ‌های آی تی ایرانی را به روز کردم که فایل OPML آن از اینجا و همچنین از طریق لینک آن در منوی سمت راست سایت قابل دریافت است.
این لیست بر اساس یافته‌های من از سایت‌های به اشتراک گذاری لینک‌های ایرانی است مانند : idevcenter.com و mohand.es . اگر آدرس وبلاگ شما در این لیست قرار ندارد لطفا یکبار در یکی از این دو سایت آدرس مطالب خود را منتشر کنید. با تشکر


مطالب
الگوی PRG در ASP.NET MVC
تا حالا با این پنجره حتما مواجه شدین:


دارید اطلاعات یک فرم داخل صفحه رو به سمت سرور میفرستید و پس از اتمام عملیات، صفحه دوباره نمایش داده میشه. در این حالت اگه دکمه F5 یا دکمه Refresh مرور گر رو بزنید، با این پنجره مواجه میشید که میگه دارید اطلاعات قبلی رو دوباره به سمت سرور میفرستید. بعضی وقت‌ها کاربران به هر دلیل دوباره صفحه رو Refresh میکنند و با این پنجره روبرو میشن بدون اینکه بدونن جریان از چه قراره، دوباره اطلاعات رو به سمت سرور میفرستن و این کار باعث ثبت اطلاعات تکراری میشه. برای جلوگیری از این کار الگویی به نام Post/Redirect/Get هست که راه حلی رو برای اینکار پیشنهاد میده. 

راه حل به این صورت هست که پس از پست شدن فرم به سمت سرور و انجام عملیات، بجای اینکه صفحه، دوباره با استفاده از متد GET به کاربر نشون داده بشه، کاربر Redirect بشه به صفحه. برای توضیح این مسئله به سراغ AccountController که بصورت پش فرض وقتی یک پروژه ASP.NET MVC رو از نوع Internet ایجاد میکنید، وجود داره. 

 اکشن Register از نوع GET صفحه ثبت نام کاربر رو نمایش میده. 
[HttpGet]
[AllowAnonymous]
public ActionResult Register()
{
      return View();
}
پس از اینکه کاربر اطلاعات داخل فرم رو پر کرد و به سمت سرور فرستاد و صحت اطلاعات فرستاده معتبر و عمل ثبت موفقیت آمیز بود برای ادامه کار به دو روش میتوان عمل کرد:
 ١- کاربر به صفحه دیگری منتقل بشه و در اون صفحه پیام موفقیت آمیز بودن عملیات نشون داده بشه. مثلا معمولا پس از انجام عمل ثبت نام، کاربر به صفحه شخصی یا صفحه اصلی سایت منتقل میشه  و یا در موقع ویرایش اطلاعات پش از انجام عمل ویرایش کاربر به صفحه دیگری که لیستی از آیتمها که کاربر یکی از آنها را ویرایش کرده باز گردانده میشه.
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        try
        {
            WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
            WebSecurity.Login(model.UserName, model.Password);
            ViewBag.Message = "Successfully Registered!";

            // PRG has been maintained
            return RedirectToAction("Index", "Home");
        }
        catch (MembershipCreateUserException e)
        {
            ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
        }
    }
    // If we got this far, something failed, redisplay form
    return View(model);
}
٢- نمایش دوباره صفحه ولی با تغییر هدر صفحه به کد 303 . کد 303 به مروگر اعلام میکنه صفحه ریدایرکت شده است
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
    if (ModelState.IsValid)
    {
        // Attempt to register the user
        try
        {
            WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
            WebSecurity.Login(model.UserName, model.Password);
            ViewBag.Message = "Successfully Registered!";

            // PRG has been maintained
            return RedirectToAction("Register");
        }
        catch (MembershipCreateUserException e)
        {
            ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
        }
    }
    // If we got this far, something failed, redisplay form
    return View(model);
}
در این حالت دوباره صفحه ثبت نام نمایش داده میشه ولی با زدن دکمه رفرش، اطلاعات دوباره به سمت سرور فرستاده نمیشه