a

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

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

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

ModelState و بررسی صحت اطلاعات در MVC

اعتبارسنجی اطلاعات در asp.net mvc

ممکن است در برنامه خود نیاز داشته باشید اطلاعات کاربر را در Controller بررسی کنید و پیام مناسبی به کاربر خود نمایش دهید.

یکی از روش هایی که می توانید به وسیله آن صحبت اطلاعات ارسالی را در سمت Server بررسی نمایید و پیام مناسب به کاربر نمایش دهید استفاده از همان ModelState است.

طبیعتا همه شما با دستور زیر آشنا هستید:

if (ModelState.IsValid)
{
/**do something*/
}

این دستوری است که در تمامی Action های [HttpPost]  نوشته می شود تا اطلاعات ارسالی کاربر بررسی گردد و در صورتی که تمامی اطلاعات به صورت صحیح به سرور ارسال شده اند، عملیات مورد نظر انجام شود.

فکر می کنید می خواهید فایلی را از کاربر دریافت و بر روی سرور قرار دهید پس دریافت فایل مشاهده می کنید که چنین فایلی بر روی سرور وجود دارد و می خواهید به کاربر اطلاع دهید تا یا نام فایل خود را تغییر دهد و یا گزینه Replace را انتخاب کنید.

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

 ModelState.AddModelError("", "Error in persisting Data");

با استفاده از این دستور شما می توانید ابتدا تمامی موارد مورد نیاز خود را در Action مربوطه بررسی کنید. این دستور با اضافه کرن خطا به ModelState باعث می شود تا فرایند شما انجام نشود مثال:

if(fileName.Name == "test.jpg")
ModelState.AddModelError("file1", "The file is already exists! ");

if (ModelState.IsValid)
{
/**do something*/
}

در دستور بالا اگر نام فایل انتخاب شده کاربر test.jpg باشد خطایی به ModelState اضافه می شود در نتیجه ModelState.IsValid برابر false خواهد شد و عملیات اجرا نمی شود.

این روش کد نویسی باعث می شود تا از دستورات if تو در تو جلوگیری شود.

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

آموزش Entity Framework Power Tools

تبدیل پایگاه داده به Model در Entity Framework

هنوز افراد زیادی وجود دارند که تمایل دارند پایگاه داده خود را با استفاده از SQL Server ایجاد کنند و سپس از روی پایگاه داده Model های خود را طراحی کنند (Code first) . راه های زیادی برای تبدیل یک پایگاه داده به کلاس های Model وجود دارد در همین وب سایت برخی از این روش ها را بررسی کرده ایم اما امروز می خواهیم یک ابزار بسیار کارامد و سریع را برای اینکار به شما معرفی کنیم.


من یک پایگاه داده را در SQL Server ایجاد کرده ام و سپس یک پروژه پیش  فرض MVC را ایجاد کرده ام. حال نوبت به طراحی و بازنویسی Model ها می رسد.

آموزش entity framework

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

Multiple object sets per type are not supportedx

ASP.NET Identity

در خصوص ساخت و ایجاد جداول ASP.NET Identity مشکلی برای برخی از دوستان پیش آمده است، از همین رو قصد داریم در اینجا این مشکل را بررسی کنیم.


خطای مربوطه به صورت زیر از سوی Entity Framework در هنگام ساخت جداول ASP.NET Identity صادر می شود:

Multiple object sets per type are not supported

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

آموزش برنامه نویسی غیر همزمان - async و await

C# 5.0

هنگامی در August 15, 2012 نسخه جدید سی شارپ یعنی C# 5.0 و همچنین به همراه آن .NET 4.5 وVisual Studio 2012 ارائه شد، دو ویژگی اصلی Async Programming  و  Caller Information به C# 5.0 اضافه شد.

Async Feature (Asynchronous Methods)


ویژگی جدید Async در C# 5.0 دو کلمه کلیدی async و await را معرفی می کند، این دو ویژگی به شما اجازه می دهد تا کدهای غیرهمزمان (asynchronous) خود را به صورت ساده و مستقیم مانند کدهای همزمان (synchronous) که در گذشته می نوشتید، بنویسید.
در نسخه های قبل از C# 5.0، برای نوشتن برنامه های asynchronous، شما نیاز داشتید که callback ها را تعریف کنید (این کار همچنین به عنوان continuations شناخته می شود)، این کار در واقع باعث می شود که پس از اجرای دستورات غیرهمزمان شما، کنترل برنامه در اختیار پردازش تعیین شده قرار گیرد.
طبیعتا این کار باعث می شود فرایند کار شما مشکل شود و exception handling در این روش بسیار پیچیده خواهد بود.
هر دو کلمه کلیدی با یکدیگر مورد استفاده قرار می گیرند. از این رو یک عملگر await بر روی یک و یا بیش از یک expression از یک متد async عمل می کند.
یک متد async یک شی Task و یا Task<TResult> را بر می گرداند که این شی نشان دهنده کار در حال انجام بر روی یک متد است. شی Task شامل اطلاعاتی در مورد فراخوان کننده متد asynchronous است که می تواند برای نمایش وضعیت Task و ID منحصر به فرد آن و یا خروجی متد مورد استفاده قرار گیرد.

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


در بسیاری از مواقع ممکن است شما بخواهید یک پروژه ASP.NET MVC را از طریق اینترنت برای افراد دیگر ارسال کنید. متاسفانه به دلیل پایین بودن سرعت اینترنت و هزینه اینکار، شاید این میسر نباشد.
اما اگر دقت کنید یک پروژه ASP.NET MVC به تنهایی حجمی ندارد (البته پروژه های کوچک و معمولی) و بیشتر حجم پروژه مربوط به package ها می شود.
راه حل این کار بسیار ساده است، کافی است پروژه را بدون Package های آن برای افراد دیگر ارسال کنید. این یکی از مزیت های استفاده از Nuget می باشد که باعث کاهش حجم پروژه می شود.

هر فردی که بخواهد پروژه را اجرا کند می بایست از طریق منوی Project گزینه Manage NuGet Packages را انتخاب کند و سپس از پنجره Manage NuGet Packages بر روی Restore کلیک کند تا Package هایی که حذف شده اند بازیابی شوند.

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

در این بخش قصد داریم نحوه افزایش سرعت بارگذاری صفحات در ASP.NET MVC را بررسی کنیم.

افزایش سرعت صفحات در ASP.NET MVC

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

مزایای کش کردن اطلاعات


کاهش میزبانی اطلاعات بر روی سرور

هنگامی که شما اطلاعات را بر روی کلاینت یا پروکسی کش می کنید، عملا سرور شما درخواست های کمتری را باید پاسخ دهد.

کاهش فشار بر روی پایگاه داده

وقتی شما اطلاعات را در وب سرور کش کنید، می توانید درخواست ها را از دیتابیس حذف کنید.

کاهش ترافیک شبکه

هنگامی که شما اطلاعات را بر روی کلاینت کش می کنید، ترافیک شبکه شما کاهش پیدا می کند.

حذف زمان ها برای بازیابی اطلاعات تکراری

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

افزایش کارایی

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

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

استفاده از setInterval را در این آموزش بررسی کردیم، حال می خواهیم با استفاده از setInterval در یک پروژه ASP.NET MVC یک Timer به وجود آوریم.

در صفحات وب می توانید به صورت زیر عمل کنید

setInterval("updateWhatever();",10000);

function updateWhatever()
{
        jQuery.getJSON(actionUrl, function(result) 
        {
            // result is the viewdata object.
        });
}

در پروژه ASP.NET MVC خود به صورت زیر عمل کنید:

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

آموزش طراحی یک وب گرید به صورت Ajax

در این آموزش می خواهیم روش ساخت یک WebGrid را به صورت Ajax بررسی کنیم.

برای ساخت یک WebGrid به صورت Ajax باید پارامتر ajaxUpdateContainerId را مقدار دهی کنیم، معمولا container مانند زیر باید یک DIV باشد.
 

    WebGrid grid = new WebGrid(
    // Other code is removed for clarity
    ajaxUpdateContainerId: "container-grid"
    );
     
    <div id="container-grid">@grid.GetHtml(
    fillEmptyRows: true,
    alternatingRowStyle: "alternative-row",
    headerStyle: "header-grid",
    footerStyle: "footer-grid",
    mode: WebGridPagerModes.All,
    ...
    })</div>

ما همچنین می توانیم Id وب گرید را به پارامتر ajaxUpdateContainerId با متد GetHtml که توسط htmlAttributes تولید شده است، ارائه دهیم. من از این روش استفاده کردم.

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

طبیعتا همه شما دکمه های Top را در کنار صفحات وب سایت ها دیده اید که با کلیک بر روی آن می توانید به بالای سایت باز گردید.

در این آموزش می خواهیم کد این دکمه را در jQuery  بنویسیم.

یک صفحه HTML ایجاد کنید و کد jQuery را به صفحه خود اضافه کنید.

jquery-1.8.0.min.js

سپس یک فایل js ایجاد کنید و کد زیر را در آن قرار دهید.

  $.fn.scrollView = function () {
    return this.each(function () {
      $('html, body').animate({
        scrollTop: $(this).offset().top
      }, 1000);
    });
  }

با استفاده از این کد ما ظرف مدت زمان یک ثانیه از محلی که بر روی لینک کلیک می کنیم به ابتدای صفحه انتقال پیدا می کنیم.

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