a

ABLY مقالات و مطالب مجموعه

صفحه اصلی / ABLY مقالات و مطالب مجموعه

بسم الله الرحمن الرحیم

آموزش asp.net mvc

 بنده شخصا از روش  Code First در تولید وب سایت های MVC استفاده می کنم. ولی شروع فراگیریم در ارتباط با MVC به صورت روش معمولی یا همان روش طراحی پایگاه داده با SQL و سپس اضافه کردن مدل مربوطه به پروژه و... بود. برخی از دوستان از همین روش هنوز برای طراحی پروژه های MVC استفاده می کنند، به همین دلیل با مشکلاتی مواجه می شوند (البته هر روشی مزایا و معایب خود دارد در این بخش قصد ندارم در خصوص مزایا و معایب روش ها صحبت کنم بلکه مقصود ارائه راه حل در مورد مشکلات است). یکی از مشکلاتی که با آن مواجه خواهیم شد بحث DataAnnotations و Metadata هایی است که شما برای ساخت یک View سفارشی کد نویسی می کنید. خوب هر بار که شما پایگاه داده خود را تغییر دهید و بخواهید به هر دلیلی مجددا از پایگاه داده خود Model ها را مجددا ایجاد کنید تمامی کد نویسی شما از بین خواهد رفت.

برای حل این مشکل کافی است که یک کلاس Partial تعریف نمایید و در آن فیلدهای خود را در آن بنویسید و سپس یک کلاس برای نگهداری Metadata تعریف نمایید، به این کلاس ها Buddy می گویند.

بسم الله الرحمن الرحیم

آموزش asp.net mvc

همانطورکه می دانید موتورهای زیادی برای طراحی view سایت، در تکنولوژی MVC وجود دارد که دو موتور پیشنهادی از سوی مایکروسافت ASPX  و موتور قدرمتند Razor می باشد. علاوه بر این دو موتور یا به اصطلاح view Engine، موتور های دیگری نیز توسط گروه های مختلف طراحی گردیده است که 4 موتور پیشرو در این عرصه موتورهای sp

بسم الله الرحمن الرحیم

آموزش asp.net mvc

هنگامی که با یک view کار می کنید شما بدون اینکه Namespaceهای مربوطه را اضافه کرده باشید (برخلاف سایر کلاس ها) می توانید با تعدادی از Namespace ها بدون استفاده از دستور using کار کنید؟

برخی از فضاهای نام که بیشتر مورد استفاده خواهند بود به صورت پیش فرض توسط مایکروسافت در کلاس پیاده ساز view اضافه شده است. اما این کلاس کجاست؟

برای یافتن این کلاس باید به آدرس زیر بروید و به دنبال کلاسی بگردید که شامل محتوای viewشما باشد چون نامهای انتخابی ارتباطی با نامی که شما برای view خود انتخاب کردید ندارد اما از محتوای این کلاس ها می توانید به کلاس مربوطه دست پیدا کنید.

برای این کار بنده یک view با محتوای خاصی ایجاد کردم که در مسیر مربوطه پس از بررسی فایل ها به فایل مورد نظرم دست پیدا کردم و این فایل شامل اطلاعات زیر بود:

 

 

همان طور که در این فایل مشخص است Namespaceهایی به صورت پیش فرض توسط مایکروسافت به viewشما اضافه شده است. شما نیز می توانید به view خود Namespaceهای مورد نظر خود را اضاه کنید. اگر به یک فضای نام، تنها در یک view نیاز دارید بهتر است به روش معمولی آن را به صفحه اضافه کنید مثل کد زیر:

بسم الله الرحمن الرحیم

آموزش asp.net mvc

در بیشتر مواقع شما نیاز دارید تا یک html Healper را ایجاد نمایید و از ان برای جلوگیری از تکرار دستورات و یا ایجاد یک خروجی مناسب استفاده کنید. برای این فرایند کافی است ابتدا یک کنترلر به صورت زیر با نوع empty ایجاد کنید:


namespace MvcApplication2.Controllers
{
   public class SampleController : Controller
    {
        // GET: /Sample/
        public ActionResult Index()
        {
            List List = new List();
            List.Add("Esmaeil");
            List.Add("Mojtaba");
            List.Add("Reza");
            List.Add("Hasan");
            List.Add("Ali");
            ViewBag.List = List;
            return View();
        }
    }
}

حال view ای ایجاد و کد زیر را به آن اضافه کنید:

بسم الله الرحمن الرحیم

آموزش asp.net mvc

یکی از روش های تولید تگ های HTML  اسنفاده از کلاس TagBuilder  می باشد. این کلاس خصوصیات های زیادی را ارائه می دهد که پرکاربردترین آن ها را به همراه یک مثال ارائه داده شده است.

یک کنترلر جدید با نام Sample ایجاد کنید و سپس کد زیر را به آن اضافه نمایید:

namespace ExternalHtml.Controllers

{
    public class SampleController : Controller

    {
         public MvcHtmlString CreateTagBuilder()

        {
              TagBuilder tagBuilderSpan = new TagBuilder("div");

            tagBuilderSpan.SetInnerText("کلمه عبور");

            TagBuilder tagBuilder = new TagBuilder("input");

            tagBuilder.AddCssClass("inputTypeClass");

            tagBuilder.Attributes.Add("type", "password");

            tagBuilder.GenerateId("input~TagBuilder");

            tagBuilder.IdAttributeDotReplacement = "input_TagBuilder";//Replace ~ char with _

            tagBuilder.MergeAttribute("enable", "false");//set enable with false for understand below tag

            tagBuilder.MergeAttribute("enable", "true", true);//true means exist tag replace and false denial tag

            tagBuilderSpan.InnerHtml += tagBuilder.ToString();

            return new MvcHtmlString(tagBuilderSpan.ToString());}

        //

        // GET: /Sample/

        public ActionResult Index()

        {
            ViewBag.TagBuilder= CreateTagBuilder();

بسم الله الرحمن الرحیم

آموزش ASP.NET MVC

در این مطلب قصد داریم کنترل های HTML Helper را معرفی نماییم. متناسب های با کنترل های HTML کنترلهایی را MVC ارائه می دهد که می توانید فرم های پویا برای ثبت اطلاعات طراحی نمایید:

از آن جا که تمامی دوستان با این کنترلها آشنا هستند فقط لیست این کنترلها با طرح یک مثال ارائه می شود:

برای شروع کار یک پروژه MVC ایجاد و سپس نوع آن را empty انتخاب کنید، حال یک کنترلر با نام Sample ایجاد و سپس view مربوطه را نیز ایجاد کنید و دستورات زیر را در view قرار دهید:

بسم الله الرحمن الرحیم

User Agent چیست

در این بخش قصد دارم یک بخش ساده از یک درخواست ارسالی از سوی یک مرورگر (کلاینت) به سمت یک سرور را معرفی کنم. در واقع هنگامی که شما یک سایت را فراخوانی می کنید، درخواست شما و سایر اطلاعات مربوط به سیستم کلاینت شما توسط یک استرینگ به نام User Agent به سمت سرور ارسال می شود.

قصد معرفی و طولانی کردن بی جهت مطلب را ندارم، انشالله در بحث های آتی کاربرد این مبحث را کاملا توضیح خواهم داد.

بسم الله الرحمن الرحیم

آموزش طراحی قالب Responsive

در این بخش قصد دارم به صورت مختصر آموزش ساخت یک قالب Responsive را آموزش دهم. بدون هیچ بحث اضافی سراغ مباحث مربوطه می رویم:

برای نمایش عناصر صفحه در مقایس های مختلف مثل کامپیوتر ها یا تبلت و در نهایت موبایل به نحوی که بتوان اطلاعات را به صورت صحیح نمایش داد نیاز است شما در مورد هر مقایس تصمیمی اخذ نمایید برای این فرایند کافی است از دستور media@ استفاده نمایید. ساختار این دستور بسیار ساده می باشد. در دستور زیر ما مشخص کردیم که اگر خروجی ما صفحه نمایش بود و سایز ما حداقل 1200 پیکسل بود تغییرات مورد نظر صورت گیرد. این کار را به صورت های زیر می توان انجام داد:

درون یک فایل StyleSheet


@media screen and (min-width : 1200px) {  
  /* let's do somethin' */
}

لینک دادن به یک StyleSheet

بسم الله الرحمن الرحیم

آموزش asp.net mvc

 در این بخش قصد دارم در خصوص بهینه سازی و افزایش سرعت لود صفحات وب مباحثی را بررسی نماییم.

همان طور که می دانید اگر در یک سایت شما چندین فایل داشته باشید به ازای هر فایل می بایست یک درخواست به سرور ارائه شود و فایل مربوطه بازیابی گردد و این خود باعث طولانی شدن زمان لود صفحات می گردد، راهکاری که برای این مشکل ارائه گردیده است تبدیل چندین فایل به یک فایل می باشد که این روش متاسفانه فقط برای فایل های تصویری، رایج و مورد استفاده است.

واقعا بسیاری از ما نیز، هنوز از این روش رایج استفاده نمی کنیم کافی است که تمامی آیکون ها و تصاویر با سایز کوچکی که در سایت مورد استفاده می خواهیم قرار دهیم را به یک تصویر تبدیل کنیم.

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس