a

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

(MVC(Model View Controller همانطور که می بینید، MVC مخفف سه کلمه است. این تکنولوژی یک برنامه را به سه قسمت تقسیم می کند. به همین دلیل از آن بعنوان معماری سه لایه نام برده می شود.
what is mvc

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

همه ی ما با خطای زیر برخورد کرده ایم.

 

 

 

validation-failed-for-one-or-more-entities-see-entityvalidationerrors-property-for-more-details

 

 

 

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

چطور می توان به سرعت اینگونه خطاها را بررسی و رفع کرد؟

 

 

 

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

حذف کردن تمامی پروسیجر ها

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

 برای حذف تمامی پروسیجر های موجود در یک پایگاه داده کافی است که کد زیر را اجرا کنید تا تمامی پروسیجر های شما

حذف شوند.می توان این دستور را به صورت یک پروسیجر ذخیره کنید تا در مواقع نیاز از آن استفاده کنید و در نهایت کد ما

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

مشخص کردن area پیش فرض در asp.net mvc

ممکن است شما بخواهید در پروژه asp.net mvc خود یکی از area ها را به صورت پیش فرض معرفی کنید تا کاربران نیاز نداشته باشند نام آن area را در آدرس خود ذکر کنند برای این کار می بایست از کد زیر استفاده کنید

 routes.MapRoute(
               name: "Default",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "Homepage", action = "Index", id = UrlParameter.Optional } //, namespaces: new string[] { "ContentManagmentMVC.Areas.Frontend.Controllers" }
           ).DataTokens.Add("area", "MyArea");

این خط کد را باید در پوشه App_Start خود و سپس در فایل RouteConfig قرار دهید.

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

جستجو یک لیست در عناصر لیست دیگر

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

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

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 تو در تو جلوگیری شود.

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

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 هایی که حذف شده اند بازیابی شوند.

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number