یک نکتهی تکمیلی
معادل مطلب «چطور مسیریابیهای ASP.NET MVC را دیباگ کنیم؟» برای ASP.NET Core در اینجا « AspNetCoreRouteDebugger »
معادل مطلب «چطور مسیریابیهای ASP.NET MVC را دیباگ کنیم؟» برای ASP.NET Core در اینجا « AspNetCoreRouteDebugger »
نظرات مطالب
کار با Kendo UI DataSource
نظرات مطالب
معرفی ASP.NET Identity
مباحث ابتدایی Forms Authentication مربوط است به ASP.NET 1.x؛ دورهای در این مورد. همچنین در MVC هم قابل استفاده است (^ و ^). مباحث membership هم مربوط است به ASP.NET 2.x. کتابی در این مورد.
پاسخ به بازخوردهای پروژهها
توضیح گام های اجرا شده در پروژه
سلام؛
هدف از انجام این پروژه برای من چسباندن قطعات مختلف یک پازل به هم بودند تا بتوان به یک تصویر خوب رسید.منظور من این است که entity framework و ASP.NET MVC و bootstrap و best practiceهای آنها به تنهایی و جدا از هم به نظر ساده و راحت و خوب بیایند، اما درگیر شدن همهی آنها در یک پروژهی واقعی، واقعا چالش بر انگیز است.
من دانشجو هستم و تقریبا استارت این پروژه را از آبان ماه زدم، اما به دلیل یک سری مشکلات از جمله همین دانشجو بودن، کار به کندی پیش رفت و حتی وقفههای چند ماهه در آن پیش اومد. هدف من این بود که اساسا یک سیستم با کیفیت بنویسم و در ابتدای کار هم، کار به خوبی پیش میرفت، اما با توجه به مشکلات ذکر شده، عمده کار کدنویسی در تعطیلات عید نوروز صورت گرفت، و کاملا از کدنویسی انجام شده مشهود است ک ههمان قسمت هایی که در عید نوروز کدنویسی شده اند، اصطلاحا سرهم بندی شده اند( به خصوص در کدهای سمت کلاینت)
در مورد گامهای انجام شده؛ پروژه به این منوال انجام شد:
- تحلیل ساختار بانک اطلاعاتی مورد نیاز
- شروع به تحقیق در مورد امکانات مورد نیاز
- دعوت همکای برای کار گروهی توسط دوستان ( کسی قبول نکرد البته دی:)
- با توجه به محدودیتهای یافت شده در تحقیقات، ساختار بانک اطلاعاتی نهایی میشود.
- انتخاب فریم ورکهای مناسب( که در اینجا Entity Framework برای orm و ASP.NET MVC برای کدنویسی سمت سرور و bootstrap برای css و jquery هم برای جاوا اسکریپت)
- تحقیق در مورد best practiceهای موجود در مورد هر یک از فریم ورکهای فوق
-شروع کدنویسی
در مورد قسمت مدیریت کاربران، هدف طراحی یک سیستم خیلی منعطف بود که قطعا با memebrship خود دات نت امکان پذیر نبود. متاسفانه به دلیل مشکلات پیش اومده این قسمت از پروژه هم سرهم بندی کردم و به یک سیستم ساده اکتفا کردم.
برای پیاده سازی آن هم شما کافیست در گوگل عبارت implement custom membership in asp.net mvc را سرچ کنید. مطمئن باشید کلی مطلب پیدا خوهید کرد که با جمع بندی آن یک سیستم خوب میتوانید پیاده سازی کنید.
الان همین سیستم پیاده سازی شده در سایت یک باگ دارد که بعد از مدتی remember me آ از کار میافتد.کوکی کاربر اعتبار دارد، اما رویداد متناظر آن برای اعتبار سنجی اتفاق نمیافتد!
الان هم در حال تحقیق برای پیاده سازی یک سیستم اعتبارسنجی کاملتر و اصولیتر و یک پارچهتر با ASP.NET MVC هستم که مقالهی زیر خیلی به من کمک کرد.(امیدوارم برای شما هم مفید باشد)
الان هم برنامه ای برای ارتقا این سیستم دارم و مهمترین تغییر آن را میتوان به استفاده از angularjs برای نوشتن بخش مدیریتی و پیاده سازی آن به صورت single page دانست.( البته اگر این کمردرد بزاره دی:)
امیدوارم دوستان با بازخوردهای خوب خودشون، در ارتقای سطح کیفی کار کمک کنند.
قدرت ASP.NET MVC 5 ریشه در پلت فرم زیرین آن یعنی ASP.NET دارد. برای اینکه بتوانید برنامهی ASP.NET MVC خود را به بهترین حالتی که میتواند باشد تبدیل کنید، شما احتیاج دارید که به طور کامل با امکانات و ویژگیهای پلتفرم مورد استفاده آشنا شوید و یاد بگیرید که چگونه میتوانید برنامههای کارا و موثر با فریم ورک MVC بنویسید.
در این کتاب شما فرا خواهید گرفت که چگونه بیشترین کار را از پلت فرم ASP.NET کشید.این کتاب برای افرادی مناسب است که میخواهند از ASP.NET MVC 5 در کارهای حرفه ای خود استفاده کنند و پیش زمینه ای در فریم ورک ASP.NET MVC دارند.
در این کتاب شما فرا خواهید گرفت که چگونه بیشترین کار را از پلت فرم ASP.NET کشید.این کتاب برای افرادی مناسب است که میخواهند از ASP.NET MVC 5 در کارهای حرفه ای خود استفاده کنند و پیش زمینه ای در فریم ورک ASP.NET MVC دارند.
بازخوردهای دوره
آشنایی با AOP Interceptors
راهکاری برای پیاده سازی این دوره در ASP.NET Core بدون استفاده از StructureMap یا هر IoC Container دیگر و فقط به کمک IoC Container توکار ASP.NET Core هست ؟ در غیر این صورت کدام Container را پیشنهاد میدهید ؟
بازخوردهای دوره
تزریق خودکار وابستگیها در برنامههای ASP.NET MVC
- بله میشود. از الگوی service locator استفاده کنید:
- اما ... اینکار برخلاف رویه MVC است. در الگوی MVC یک View نباید مستقیما کوئری بگیرد. View فقط باید اطلاعات مورد نیاز خود را از کنترلر مرتبط دریافت کند.
اطلاعات بیشتر: Don’t Query from the View
- اگر نیاز است یک سری اطلاعات تکراری در هر اکشن متد به Viewها تزریق شود، روال کار AOP است. در MVC برای پیاده سازی AOP فقط کافی است یک ویژگی جدید از نوع ActionFilterAttribute تعریف کنید و خواص تکراری را به آن منتقل کنید:
در اینجا برای نمونه، نحوهی دسترسی به ViewBag را مشاهده میکنید. اکنون اکشن متدی که به ویژگی DuplicateInfo مزین شود، به تمام اطلاعات تنظیم شده توسط آن هم دسترسی خواهد داشت.
@{ ViewBag.Title = "Index"; var categoryService = ObjectFactory.Container.GetInstance<ICategoryService>(); var list = categoryService.GetAllCategories(); }
اطلاعات بیشتر: Don’t Query from the View
- اگر نیاز است یک سری اطلاعات تکراری در هر اکشن متد به Viewها تزریق شود، روال کار AOP است. در MVC برای پیاده سازی AOP فقط کافی است یک ویژگی جدید از نوع ActionFilterAttribute تعریف کنید و خواص تکراری را به آن منتقل کنید:
public class DuplicateInfo : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.Controller.ViewBag.CanonicalUrl = "redirectUrl ..... "; base.OnActionExecuting(filterContext); } }