همانطور که در قسمت قبل نیز بررسی کردیم، ASP.NET Core امکان تزریق وابستگیهای متداول را در اکثر قسمتهای آن مانند کنترلرها، میانافزارها و غیره، میسر و پیش بینی کردهاست؛ اما همیشه و در تمام مکانهای یک برنامهی وب، امکان تزریق وابستگیها در سازندهی کلاسها وجود ندارد و مجبور به استفادهی از الگوی Service Locator میباشیم. در این قسمت این مکانهای ویژه را بررسی خواهیم کرد.
HttpContext و امکان دسترسی به Service Locatorها ...
الگوی Service locator را در قسمت دوم بررسی کردیم. همانطور که عنوان شد، بهتر است تا جائیکه امکان دارد از بکارگیری آن به علت ضدالگو بودن پرهیز کرد. در ادامه قسمتهای مختلف یک برنامهی ASP.NET Core را که میتوان بدون نیاز به استفادهی الگوی Service locator، تزریق وابستگیها را در آنها انجام داد، مرور میکنیم.
در کلاس آغازین برنامه
در اینجا در متد Configure آن تنها کافی است اینترفیس سرویس مدنظر خود را مانند IAmA ...
یکی از پرکاربردترین اینترفیسهای NET.، اینترفیس IDisposable است. عموما کلاسهایی که ارجاعی را به منابع غیر مدیریت شده مانند فایلها و سوکتها داشته باشند، این اینترفیس را پیاده سازی میکنند. garbage collector به صورت خودکار حافظهی اشیاء مدیریت شده یا دات نتی را رها میکند؛ اما چیزی را در مورد منابع غیر مدیریت شده نمیداند. به همین جهت پیاده سازی اینترفیس IDisposable روشی را جهت پاکسازی این منابع به garbage collector معرفی میکند.
...
در قسمت قبل برای دریافت وهلهای از سرویس TestService، به صورت ()<serviceProvider.GetService<ITestService عمل کردیم. این روش در اصل الگوی Service Locator نام دارد که جزئیات بیشتری از آنرا در این قسمت بررسی خواهیم کرد.
قلب سیستم تزریق وابستگیهای NET Core. اینترفیس IServiceProvider است
IServiceProvider که اساس IoC Container برنامههای مبتنی بر NET Core. را تشکیل میدهد، در اسمبلی System.ComponentModel و در ...
در این قسمت قصد داریم به بررسی نحوهی مدیریت خطاها و لاگ کردن آنها بپردازیم. همچنین در ادامه Analytics را در برنامه فعال میکنیم تا اطلاعاتی از دستگاههای کاربران و ... را به دست بیاوریم (اگر آخرین تغییرات XamApp را Pull/Clone کنید، حاوی تمامی تغییرات زیر است). در برنامههای Native موبایل که شامل Xamarin Forms نیز میشود، هر خطایی میتواند باعث Crash کردن کل برنامه شود. در Bit Framework، تمامی خطاها مدیریت میشوند، تا جلوی بسته شد ...
مهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت اول - تزریق وابستگیها در برنامههای کنسول
پیشتر با مقدمات تزریق وابستگیها در برنامههای ASP.NET Core آشنا شدهایم:
- مقدمهای بر تزریق وابستگیها درASP.NET Core - ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویسها و تزریق وابستگیها
در ادامه در طی چند مطلب میخواهیم نکات و سناریوهای تکمیلی مرتبط با امکانات تزریق وابستگیهای توکار برنامههای مبتنی بر NET Core. را بررسی کنیم.
تزریق وابستگیها در برنامههای کنسول ...
پس از انجام « تنظیمات امنیتی SMTP Server متعلق به IIS جهت قرارگیری بر روی اینترنت » و همچنین پیاده سازی « مراحل تنظیم Let's Encrypt در IIS »، یکی دیگر از کاربردهای مجوز SSL دریافتی، رمزنگاری تبادل اطلاعات بین SMTP Server جاری و میل سرور مقصد است. بدون انجام اینکار، ایمیلهای دریافتی توسط GMail، یک چنین شکلی را خواهند داشت:
همانطور که مشاهده میکنید، کنار ایمیل ارسالی توسط ما، یک آیکن قرمز رنگ مبتنی بر عدم رمزنگاری ارتبا ...
هنگامیکه درحال طراحی کلاسهایی هستیم که وابستگیهایی دارند،
ممکن است با شرایطی مواجه شویم که به این
وابستگیها نیاز نباشد و یا به رفتار عادی بعضی از وابستگیها نیاز نداشته باشیم.
شاید
راهی که در این مواقع به ذهن برسد این باشد
که بجای شیء واقعی وابستگی موردنظر، از یک شیء Null Reference استفاده
کنیم. ولی
استفاده از این روش کدهایمان را پیچیده
خواهد کرد؛ چون هر جای کد که نیازمند استفادهی از اعضای شیء وابستگی موردنظرمان باشیم ...
در این قسمت قصد داریم به بررسی نحوهی بهبود Performance در پروژههای Xamarin Forms نگاهی بیاندازیم. صد البته امکان پوشش دادن تمامی نکات وجود ندارد و در این قسمت سعی بر پوشش دادن مهمترین آنها را داریم. توجه داشته باشید که در قسمت نهم به "x:DataType" و در قسمت چهارم به "مواردی مهم در زمینهی بهبود عملکرد پروژههای Xamarin در Android" پرداخته بودیم که آن نکات در بهبود سرعت برنامهها تاثیر گذارند. همان طور که در قسمت چهارم گفته شد، ه ...
چند روزی بود که ایمیلهای سایت رد نمیشدند و تمام آنهایی که متعلق به جیمیل بودند، برگشت میخورند. در لاگهای سرور، اطلاعات خاصی مشاهده نشد. به همین جهت logging مخصوص SMTP Server فعال شد: پس از یک روز، چنین سطرهایی پس از سعیهای ارسال ایمیل به جیمیل، قابل مشاهده بودند: 550-5.7.1+This+message+does+not+have+authentication+information+or+fails+to+pass
پس از اندکی جستجو مشخص شد که جیمیل، استفادهی از SPF را اجباری کر ...