a

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

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

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

در این بخش قصد داریم نحوه افزایش سرعت بارگذاری صفحات در 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 خود به صورت زیر عمل کنید:

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

طبیعتا همه شما دکمه های 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);
    });
  }

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

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

 

می خواهیم به تمامی لیست هایی که از نوع double ایجاد می شوند یک متد برای پیدا کردن عنصر میانی آنها بنویسیم

 

public static class LINQExtension
{
    public static double Median(this IEnumerable<double> source)
    {
        if (source.Count() == 0)
        {
            throw new InvalidOperationException("Cannot compute median for an empty set.");
        }

        var sortedList = from number in source
                         orderby number
                         select number;

        int itemIndex = (int)sortedList.Count() / 2;

        if (sortedList.Count() % 2 == 0)
        {
            //

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

آموزش Authentication در MVC

آموزش ASP.NET Identity

آموزش Asp.net Identity MVC (بخش اول)

آموزش Asp.net Identity (بخش دوم)

آموزش Asp.net Membership (رفع خطا)

 

در بعضی مواقع ممکن است شما از نوع پیش فرض authentication نمی خواهید استفاده می کنید و دوست دارید یک احراز هویت اختصاصی برای خود داشته باشید. هر کاربر شما یک کاربر منحصر به فرد خواهد بود که مجموعه ای از سطوح دسترسی را برای دسترسی به بخش های مختلف وب سایت شما خواهد داشت. وقتی که کاربر شما تایید شود می تواند وابسته به Role هایی که دارد از منابع مختلف استفاده کند.

 

Asp.net Identity

 

ASP.NET به وسیله دو interface به نام های، IPrincipal and IIdentity سطوح دسترسی و identity و Role را برای هر کاربر ارائه می دهد. شما می توانید یک سطح دسترسی اختصاصی برای خود به وسیله اینترفیس های IPrincipal and IIdentity، که در HttpContext باند شده اند ایجاد نمایید.

public class CustomPrincipal : IPrincipal
 {
 public IIdentity Identity { get; private set; }
 public bool IsInRole(string role)
 {
 if (roles.Any(r => role.Contains(r)))
 {
 return true;
 }
 else
 {
 return false;
 }
 }

 public CustomPrincipal(string Username)
 {
 this.Identity = new GenericIdentity(Username);
 }

 public int UserId { get; set; }
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public string[] roles { get; set; }
 }

 

 

 

 

 

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

طبیعتا تاکنون در حین اجرای پروژه با خطای زیر برخورد کردید:

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details. Description: 
An unhandled exception occurred during the execution of the current web request.
Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.Entity.Validation.DbEntityValidationException:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

هر یک از شما دوستان ممکن است راه حل های زیادی برای حل این مشکل داشته باشید.

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

آموزش Authentication در MVC

آموزش ASP.NET Identity

آموزش Asp.net Identity MVC (بخش اول)

آموزش Asp.net Identity (بخش دوم)

آموزش Asp.net Membership (رفع خطا)


پس از اراائه ASP.NET Identity امکانات جدیدی در اختیار برنامه نویسان قرار گرفت ولی متاسفانه کمی این تکنولوژی کمی گیج کننده است. به همین دلیل سعی کردم یک مثال را برای شما عزیزان در اینجا قرار دهم.
در این مقاله authentication بر اساس cookie را در ASP.NET Identity بررسی خواهیم کرد.

 

Project Setup

یک Empty ASP.NET MVC web application ایجاد کنید.
•    از منوی File  گزینه  New Project و سپس "ASP.NET Web Application" را انتخاب کنید.
•    از پنجره  باز شدهASP.NET  گزینه "Empty" و در قسمت تنظیمات گزینه MVC را انتخاب کنید.

 

Asp.net Identity

 

ASP NET Identity


حال یک پروژه ASP.NET MVC application ایجاد کردید.

 

 

 

 

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

 معرفی T4MVC

T4MVC می تواند بر روی نسخه های Visual Studio 2010, 2012  و  2013نصب شود وASP.NET MVC 4.0  و  5.0این Package را پشتیبانی می کنند، شاید بتوانید بر روی سایر نسخه ها از این Package استفاده کنید اما این Package فقط بر روی گزینه های گفته شده تست شده است.

 

نصب T4MVC

برای نصب این Package کافی است که دستور زیر را از طریق Package Manager Console اجرا کنید

Install-Package T4MVC

پس از اجرای این دستور دو فایل به پروژه شما اضافه می شود.

هدف T4MVC

این Package برای جلوگیری از نوشتن اسامی کنترلر ها و اکشن ها و در نهایت view ها به صورت Hard Code مورد استفاده قرار می گیرد.

برای مثال کدزیر را در نظر بگیرید:

<% Html.RenderPartial("DinnerForm"); %>

 

ما از عبارت های رشته ای برای فراخوانی این Partial استفاده کرده ایم، اگر فردا شما بخواهید این نام را تغییر دهید باید در بهترین و سریعترین روش ممکن با استفاده از Finde ویژوال استادیو تمامی نام های مربوطه را تغییر دهید.

اما چرا از ابتدا از روش دیگری استفاده نکنیم!

T4MVC در واقع نام تمامی View,Conreoller,Action ها را به صورت خودکار در خود ذخیره می کند و عملا یک Enumeration  برای شما به وجود می آورد تا در آینده در صورتی که نامی را برای یک View,Conreoller,Action عوض کردید، این نام در تمامی پروژه عوض شود.

مثال:

<% Html.RenderPartial("DinnerForm"); %>

از این به بعد ما نام ها را به صورت زیر خواهیم نوشت:

 

<% Html.RenderPartial(MVC.Dinners.Views.DinnerForm); %>

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