Archive for 2014/11

تغییر فونت فارسی ویندوز 7 و اصلاح فونت پیش فرض

۱۳۹۳/۰۹/۰۳ ۲۱:۴۴ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۹۳/۰۹/۰۳ دسته بندی : ، 4

فونت پیش فرض ویندوز 7 برای فارسی خوانایی خیلی کمی دارد. قبلا فونت پیش فرض در ویندوز XP فونت Tahoma بود که خوانایی قابل قبولی داشت ولی این فونت به Segoe UI در ویندوز 7 و 8 تغییر یافته. متاسفانه در ویندوز 7 این فونت جدید هنوز دارای رسم الخط فارسی و عربی نبوده و همین باعث می شد که خوانایی آیکون ها و فولدر ها با نام فارسی بسیار کم باشد.
همانطور که قبلا در پستی در مورد نسخه جدید فونت توضیح دادم این فونت در ویندوز 8 اصلاح شده و اکنون خوانایی قابل قبولی را دارد. برای استفاده از آن کافی است که نسخه جدید را دانلود کرده و نصب کنید.
 

دانلود آخرین نسخه فونت Segoe UI | لینک Mirror

جهت نصب فایلهای فونت ها را از حالت فشرده خارج کنید، بر روی آنها کلیک راست کرده و گزینه Install را بزنید. پیغامی مبنی بر جایگزینی فونت موجود دریافت خواهید کرد که گزینه Yes را انتخاب کنید. و یا راهنمای نصب فونت را مطالعه کنید.

 

بهینه سازی URL ها در MVC با lowercase-dashed-routing

۱۳۹۳/۰۸/۲۸ ۱۹:۱۹ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۹۳/۰۸/۲۸ دسته بندی : ، ، 0

مقدمه
آدرس های صفحات در وب یا اصلاحا URL به خاطر مسئله بهینه سازی های مربوط به موتور های جستجو اهمیت زیادی دارند. در همین راستا MVC هم به صورت پیش فرض آدرس های خوانایی رو تولید می کند. مانند example.com/Articles/TheSamplePage
با توجه به باز بودن بستر MVC می توان پا را فراتر از این هم نهاد و بهینه سازی بیشتری را نیز انجام داد. اما چطور؟
در آدرسی که ذکر شد چند اشکال خیلی کوچک وجود دارد. مهترین آن ترکیب حروف بزرگ و کوچک است. چطور میشود اگر کسی آدرس لینک را با حروف کوچک به صفحه ما لینک کند. حتی اگر این تغییر در بزرگی حروف حتی در یک کلمه باشد و بقیه حروف دقیقا برابر باشند. این می تواند باعث اشکال شده و موتور گوگل را به اشتباه انداخته و همان صفحه در دو نسخه متفاوت شناسایی بشود و نتیجه آن هم کاهش رنکینگ صفحه است.
اشکال دیگر مربوط میشود به شناسایی کلمات کلیدی در داخل URL که خود جزو موارد مهم در هنگام اندیس گذاری صفحات توسط موتور های جستجو است. با توجه به ترکیب حروف بزرگ و کوچک ممکن است که موتور جسجو به درستی نتواند کلمات مورد نظر ما را شناسایی کند.
راه حل همه این موارد که البته بسیار هم مرسوم است استفاده از حروف کوچک همراه با جداکردن کلمات در یک جمله طولانی با استفاده از خط تیره می باشد. برای مثال آدرس صفحه ای که ذکر شد به این صورت خواهد شد: site.com/articles/the-sample-page

معرفی
برای انجام راه حلی که ذکر آن رفت کتابخانه lowercase-dashed-routing توسعه داده شده است. استفاده از این ابزار بسیار آسان بوده و فقط کافی است که به جای کافیگ های قبلی routing از این کتابخانه استفاده نمایید.
نسخه ابتدایی این کتابخانه که توسط نویسنده اصلی آن طراحی شده بود دارای چندین اشکال اساسی بود که استفاده از آن را تقریبا غیر قابل توجیه می کرد.
در نسخه ای که مشاهده می کنید همه مشکلات آن را رفع کرده ام و تقریبا مشکلی باقی نمانده.
سورس های lowercase-dashed-routing

دانلود و نصب
جهت نصب این کتابخانه از دستور زیر در nuget استفاده کنید.
Install-Package LowercaseDashedRouteExt 
یا فایل رفرنس را خودتان دستی اضافه نمایید. صفحه دانلود مستقیم

نمونه مثال و استفاده
استفاده از این کتابخانه بسیار ساده است، به عنوان اولین کار باید تنظیمات روتینگ رو در فایل RouteConfig عوض کنید. یک نمونه ساده از تنظیم پیش فرض:
routes.Add(new LowercaseDashedRoute("{controller}/{action}/{id}",
    new RouteValueDictionary(
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
        new DashedRouteHandler()
    )
);

در صورتی که از Areaها استفاده می کنید، باید از کافیگ زیر در درون تابع RegisterArea مربوط به XxxAreaRegistration.cs استفاده کنید:
var route = new LowercaseDashedRoute("AreaName/{controller}/{action}/{id}",
    new RouteValueDictionary(
        new
        {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional
        }),
    new DashedRouteHandler(),
    this, context);
context.Routes.Add("AreaName_default", route);

در صورتی که از ذکر صریح Namespace استفاده می کنید، فقط یک آرگومان اضافی باید ارسال کنید:
routes.Add(new LowercaseDashedRoute("{controller}/{action}/{id}",
       new RouteValueDictionary(
           new { controller = "Home", action = "Index", id = UrlParameter.Optional }),
       new DashedRouteHandler(),
       new[] { "SampleProject.Controllers" }
));
لینک های پروژه
صفحه پروژه lowercase-dashed-routing
صفحه دانلود فایلهای کامپایل شده
صفحه مربوط به NuGet