این روش منحصر به Nop نیست و امکان استفادهی از آن بر روی هر سورس دیگری نیز وجود دارد. همچنین اگر در رابطه با NopCommerce اطلاعاتی ندارید، میتوانید از اینجا جهت آشنا شدن با این فروشگاه ساز Asp.net core استفاده کنید.
همانطور که در جریان هستید، برای اینکه بحث DI را در پروژه داشته باشیم، باید به ازای هر سرویس مشخص کنیم که کدام اینترفیس، به کدام کلاس، map شود. به بیان دیگر باید مشخص کرد هر وقت یک شیء از Container درخواست شد، از چه کل ...
فرض کنید یک برنامهی تحت وب را نوشتهایم که برای مدارس و همچنین برای هنرستانها مورد استفاده قرار میگیرد. هنگامیکه برنامه را برای مشتری پابلیش میکنیم، از کلمات مدرسه و دانش آموز استفاده کردهایم. اما مشتری هنرستان از ما میخواهد این عبارتها، به هنرستان و هنرآموز تغییر کنند. خوب یک راهحل این هست که ریسورسها را قبل از هر پابلیش تغییر دهیم و همیشه باید حواسمان به این موضوع باشد که الان برنامه را برای مشتری مدرسه پابلیش میکنیم، یا مشتری ...
Blazor 5x - قسمت 19 - کار با فرمها - بخش 7 - نکات ویژهی کار با EF-Core در برنامههای Blazor Server
تا قسمت قبل ، روشی را که برای کار با EF-Core درنظر گرفتیم، روش متداول کار با آن، در برنامههای ASP.NET Core Web API بود؛ یعنی این روش با برنامههای مبتنی بر Blazor WASM که از دو قسمت مجزای Web API سمت سرور و Web Assembly سمت کلاینت تشکیل شدهاند، به خوبی جواب میدهد؛ اما ... با Blazor Server یکپارچه که تمام قسمتهای مدیریتی آن سمت سرور رخ میدهند، خیر! در این مطلب، دلایل این موضوع را به همراه ارائه راهحلی، بررسی خواهیم کرد.
ط ...
Profileهای AutoMapper، قابلیت تزریق وابستگیها را در سازندهی خود ندارند؛ به همین جهت در این مطلب، دو راه حل را جهت رفع این محدودیت بررسی میکنیم. مثال: نیاز به نگاشت کلمهی عبور، به کلمهی عبور هش شده
فرض کنید موجودیت کاربری که قرار است در بانک اطلاعاتی ذخیره شود، چنین ساختاری را دارد: namespace AutoMapperInjection.Entities
{
public class User
{
public int Id { set; get; }
public ...
ممکن است در حین توسعهی یک برنامه، یکبار سرویسهای مدنظر را توسط قابلیت اسکن کتابخانههایی مانند Scrutor به برنامه اضافه کنید و یکبار هم به اشتباه تعدادی از آنها را دستی ثبت کنید و یا ممکن است کتابخانههای ثالثی را که مورد استفاده قرار دادهاید، دست آخر سبب ثبت بیش از اندازهی سرویسهای مشخصی شدهاند. در ادامه روش گزارشگیری از این سرویسهای تکراری ثبت شده را بررسی میکنیم. یافتن سرویسهایی که به اشتباه بیش از یکبار ثبت شدهاند ...
همانطور که میدانید ASP.NET Core از تزریق وابستگیها ( Dependency Injection ) پشتیبانی میکند، که یک نوع Design Pattern است، و در اصل یک تکنیک است برای دستیابی و پیاده سازی اصل Inversion Of Control یا همان IoC بین کلاسها و وابستگیهای آن کلاسها. متد ConfigureServices در کلاس Startup وظیفهای دارد برای ثبت و تعریف سرویسهای مورد استفادهی در برنامه از جمله Platform Features مانند EF Core و معماری MVC. این متد در اصل DI Container ما است و ...
در بعضی از شرایط
پیش رفته، ممکن است نمونه سازی از یک Implementation Type ، نیاز به دخالت مستقیم ما را
داشته باشد. Implementation Factory کنترل بیشتری بر چگونگی استفادهی از Implementation Type ها را به ما ارائه میدهد. در هنگام ثبت سرویسی که Implementation Factory را در اختیار ما قرار میدهد، ما
یک Delegate را برای
فراخوانی سرویس استفاده میکنیم ...
در بخش پنجم از سری نوشتار « تزریق وابستگیها در ASP.NET Core »، میخواهیم به شرح کلاس ServiceDescriptor بپردازیم. اگر تعریف اینترفیس IServiceCollection را
مشاهده کنیم، میبینیم که IServicecollection در
واقع لیستی از اشیائی از نوع ServiceDescriptor را نگهداری میکند: namespace Microsoft.Extensions.DependencyInjection
{
public interface IServiceCollection :
ICollection&l ...
در قسمتهای قبلی این سری، به ترتیب ابتدا در مورد مبحث تزریق وابستگیها صبحت کردیم، بعد اولین سرویسمان را در ASP.NET Core ثبت و واکشی کردیم. در بخش سوم، تنظیمات را درون سامانه، ثبت و استفاده کردیم و حالا در این بخش میخواهیم به مبحث طول حیات سرویسها بپردازیم. همانطور که گفتیم، وظیفهی DI Container، ایجاد یک نمونه از سرویس درخواست شده، تزریق آن به کلاس درخواست دهنده و در انتها از بین بردن یا Dispose شیء ایجاد شده از سرویس ثبت شدهاست ...