بررسی مراحل نصب و استفاده MiniProfiler در ASP. Net Core می‌تواند برای برنامه نویسان مفید باشد. ما در این مقاله از سری مقالات آموزش asp.net core  سعی داریم تا روش استفاده ازMiniProfiler در ASP. Net Core را بررسی کنیم، پس با ما همراه باشید. البته به یاد داشته باشید که مطالب لازم برای یادگیری این موضوع بسیار بیشتر از مقاله است و در این مقاله تنها بررسی اجمالی برای درک درست، روش استفاده از این برنامه صورت گرفته است.

MiniProfiler

MiniProfiler به ما کمک می‌کند تا عملکرد برنامه dotnet خود را بهینه کنیم. قابلیت‌های آن شامل موارد ذیل است:

  • ردیابی نمایش داده شدها و اجرای آن‌ها در یک برنامه
  • نشان دادن زمان سنجش شده توسط هر جستجو
  • تعیین زمان لازم برای اجرای یک کد با استفاده از زمان شخصی‌سازی
  • ارائه گزارش رابط کاربر برنامه از هر صفحه یا درخواست
  • پشتیبانی. NetFramework، . NetCore، . Net5، Dapper، EntityFrame

اهداف MiniProfiler در ASP. Net Core

MiniProfiler بر روی هر یک از برنامه‌های. Net مانند MVC، Razor Pages و Web API کار خواهد کرد. برای درک بهتر کاربرد MiniProfiler در ASP. Net Core، قصد داریم از آن در برنامه فرضی. Net5 MVC استفاده کنیم.

در اینجا ساختار برنامه MVC که ما قصد داریم MiniProfile در آن را تست کنیم، به شرح ذیل است:

  • برنامه شامل 2 صفحه؛ صفحه اصلی و Todo است.
  • در صفحه خانه ۲ راه برای ارتباط با پایگاه داده وجود دارد است، این اتصال‌ها توسط چارچوب موجودیت انجام می‌شوند.
  • صفحه Todo دارای یک راه برای اتصال با پایگاه داده است و از dapper برای برقراری ارتباط با پایگاه داده استفاده می‌شود.
  • در هر صفحه، این برنامه یک فیلتر اقدام ثبت شده وجود دارد که کاربر را به پایگاه داده متصل می‌کند.

اکنون با استفاده از MiniProfiler، سعی داریم تا به اهداف ذیل دست پیدا کنیم:

  • پیگیری درخواست‌های چارچوب موجودیت و زمان لازم برای گرفتن نتایج در صفحه اصلی
  • پیگیری سوالات dapper و زمان صرف شده برای گرفتن نتایج در صفحه Todo
  • با استفاده از MiniProfiler ما توانایی جستجو در داخل فیلتر عمل را داریم
نکته
اگر نیازمند فراگیری طراحی سایت هستید، به شما پیشنهاد می کنیم دوره ی طراحی سایت با asp.net را مشاهده فرمایید.

روش استفاده‌ از MiniProfiler در ASP. Net Core

نصب بسته MiniProfile

برای اینکار باید فرمان مدیر بسته مبتنی بر نصب MiniProfiler در ASP. Net Core را انجام دهید. سپس دستور Net CLI را اجرا کنید و بسته dotnet MiniProfiler. AspNetCore را نیز اضافه کنید.

پیکربندی سرویس پروفایل و نرم‌افزار میانه

اولین قدم شما برای استفاده سرویس MiniProfiler در ASP. Net Core به شمار می‌رود. بعد از پیکربندی روش MiniProfiler Service، شما باید نرم‌افزار Profiler را پیکربندی کنید؛ همچنین باید در بالای middleware مسیر پیکربندی ثبت شود و در صورت امکان بهترین مکان برای ثبت این میان‌افزار به عنوان اولین میان‌افزار انتخاب شود.

پیگیری نمایش داده‌های EntityFrameWork

  • اکنون باید کتابخانه داخلی MiniProfiler را برای چارچوب موجود نصب کنیم.
  • در وهله اول باید بسته EntityFrameworkCore را نصب کنیم. سپس بسته MiniProfiler. EntityFrameworkCore را اضافه و توسعه دهیم.
  • حالا ما باید روش توسعه کتابخانه MiniProfiler را در چارچوب موجودیت در خدمات راه اندازی شده خود ثبت کنیم.
  • در این مرحله MiniProfiler می‌تواند جستوجوهای چارچوب موجودیت را در برنامه ردیابی کند. برای مشاهده گزارش باید از مسیر پیش فرض MiniProfiler “{yourdomain.com} / mini-profiler-منابع / نتایج استفاده کنیم.
  • در این مرحله صفحه Home را که دارای ۲ راه ارتباطی با پایگاه داده چارچوب موجود است را اجرا کنیم تا MiniProfiler آن‌ها را ردیابی کند.
  • URL پیش فرض برای دسترسی به گزارش MiniProfiler.

باید توجه داشت که با توجه به عنوان مربوط به هر صفحه از برنامه، کل صفحه نمایش داده می‌شود.

با استفاده از URL صفحه، نمای کلی از هر زمان اجرای ماژول و همچنین زمان هر نمایشگر چارچوب موجودیت در داخل آن‌ها نشان داده خواهد شد. این موضوع باعث پیگیری تصویر مربوط به فیلتر اکشن MVC می‌شود که در آن بازدید از صفحه در پایگاه داده ثبت شده است. توجه داشته باشید که گزارش‌ها باید قابلیت نمایش نام فیلتر اکشن باشند.

MiniProfiler در ASP. Net Core همچنین پرسش SQL خام را بر اساس عبارت پرسش چارچوب موجودیت تولید کند، می‌توانیم زمان لازم برای اجرای جستجوی را مشاهده کنیم. علاوه بر این موارد می‌توانیم زمان باز و بسته شدن اتصال پایگاه داده را مشاهده کنیم.

نکته
چناچه علاقه مند هستید تا unit of work را بیاموزید، می توانید دوره unit of work چیست را مشاهده فرمایید.

پیگیری گزارشات Dapper

همان طور که ذکر شد صفحه Todo در برنامه فرضی ما از Dapper برای برقراری ارتباط با پایگاه داده استفاده می‌کند.

حال اگر بخواهیم به مسیر گزارش MiniProfiler دسترسی پیدا کنیم می‌توانیم مشاهده کنیم گزارشات موجود فقط شامل جست و جوی بازدید از صفحه ورود به سیستم فیلتر MVC است. در واقع گزارشی از صفحه اصلی Todo وجود ندارد، زیرا از Dapper برای بررسی گزارشات استفاده نمی‌شود. در این بخش سعی داریم راه حل این مشکل را نیز بررسی کنیم.

اکنون باید در کتابخانه داخلی MiniProfiler بیشتری نصب کنیم تا از ردیابی dapper پشتیبانی شود.

نکته
برای آشنایی بیشتر با این موضوع به شما پیشنهاد مطالعه مقاله asp.net core چیست را می دهیم.

فرمان مدیر بسته:

MiniProfiler. Providers. Sql Server را نصب کنید. دستور NET CLI را اجرا کنید و بسته MiniProfiler. Providers. Sql Server را اضافه و توسعه دهید. روش اقدام Todo را با کد MiniProfiler به روز کنید.

راه حل ۱

در یک برنامه زمان واقعی، ما به طور قطع با چندین لایه از پروژه‌ها روبرو خواهیم شد. بنابراین به احتمال زیاد در پروژه‌های چند لایه، به دلیل MiniProfiler. Provider. Sql Server فقط در کتابخانه پروژه UI نصب نخواهد شد. اما در همه کتابخانه‌های باقی مانده مانند کتابخانه لایه داده، از «Dapper» استفاده خواهیم کرد.

مشاهده

در اینجا می‌توانیم گزارش dapper توسط MiniProfiler را پیگیری کنیم. فراموش نکنید که MiniProfiler قابلیت ردیابی بلوک‌های کد در. net را دارد.

MiniProfiler. Current. Step

داده‌های ساده مانند زمان صرف شده توسط کد برای اجرا را نشان می‌دهد و پارامتر ورودی به عنوان name در گزارش پروفایلر نشان داده می‌شود.

MiniProfiler. Current. StepIf

اولین پارامتر برای نمایش به عنوان name در گزارش نشان داده می‌شود. در صورت استفاده از کد minSaveMs می‌توان ثانیه‌ها را تعیین کرد. اگر قبل از زمان مشخص شده در minSaveMs شما MiniProfiler در ASP. Net Core اجرا کنید، مسیر در گزارش ظاهر نمی‌شود

MiniProfiler. Current. CustomTiming

این ابزار اطلاعات بیشتری را در مقایسه با MiniProfiler. Current. Step نشان می‌دهد.

MiniProfiler. Current. CustomTimingIf

اگر در زمان اجرای بلوک کد در کمتر زمان مشخص شده در minSaveMs اجرا شود، گزارش برای این مجموعه کد ظاهر نمی‌شود.

نکته
برای افزایش اطلاعاتتان در این زمینه می توانید مقاله تفاوت asp.net core و mvc را نیز مطالعه فرمایید
.