در قسمت قبل ، نحوهی پیاده سازی الگوی Decorator را با استفاده از امکانات تزریق وابستگیهای NET Core. بررسی کردیم؛ اما ... این روزها کسی Decoratorها را دستی ایجاد نمیکند. یعنی اگر قرار باشد به ازای هر کلاسی و هر سرویسی، یکبار کلاس Decorator آنرا با پیاده سازی همان اینترفیس سرویس اصلی و فراخوانی دستی تک تک متدهای سرویس اصلی تزریق شدهی در سازندهی آن انجام دهیم، آنچنان کاربردی به نظر نمیرسد. به همین منظور کتابخانههایی تحت عنوان Dynamic ...
الگوی decorator، امکان محصور کردن یک شیء مفروض را با لایهای بر فراز آن میسر میکند. برای مثال بجای اینکه در تمام متدهای سرویسی از try/catch استفاده کنیم، میتوانیم این متدها را با یک ExceptionHandlingDecorator مزین کنیم و یا از این دست اعمال تکراری میتوان به لاگ کردن ورودی و خروجیهای یک متد و یا کش کردن اطلاعات آنها نیز اشاره کرد. حتی عملیاتی مانند تشخیص خواص تغییر یافتهی یک شیء در Entity framework نیز به کمک همین مزین کنندهها که شیء ...
فرض کنید در برنامهی خود، یک سرویس جنریک را طراحی کردهاید. برای مثال خود ASP.NET Core به همراه سرویس جنریک <ILogger<T است و اگر برای نمونه بخواهیم آنرا در سازندهی کنترلری مانند ValuesController تزریق کنیم، نحوهی تعریف آن به صورت <ILogger<ValuesController خواهد بود. هر چند تنظیمات این سرویس پیشتر انجام شدهاست، اما اگر بخواهیم آنرا به همین نحو <ILogger<T به متدهایی مانند services.AddScoped معرفی کنیم، کار نمیکند؛ نمو ...
در این قسمت قصد داریم تا با زدن کدهای Platform Specific در Xamarin آشنا شویم. صد البته که در Xamarin Forms به کتابخانههای NET. ای دسترسی داریم و مواردی چون Entity Framework Core، Auto Mapper، Autofac و ... را میتوانیم استفاده کنیم و در کنار اینها، مواردی چون Linq, Parallel Linq, Socket و ... نیز در دسترس ما هستند. در رابطه با مواردی چون کار با Clipboard, Geocoding, Gyroscope, Secure Store و ... نیز میتوان از کتابخانه فوق العاده کاربردی ...
قابلیتهای قرار گرفتهی در اسمبلی Microsoft.Extensions.DependencyInjection که پایهی تزریق وابستگیهای برنامههای مبتنی بر NET Core. را ارائه میدهد، برای پیاده سازی اکثر پروژهها کافی است. اما اگر از نگارشهای پیشین ASP.NET MVC به ASP.NET Core مهاجرت کرده باشید، حتما با قابلیتهای ویژهی اسکن اسمبلیهای موجود در IoC Containers ثالث، جهت ساده سازی معرفی سرویسهای برنامه به سیستم تزریق وابستگیها، آشنایی دارید. برای مثال StructureMap قابلیت ...
در پروژهای که در حال حاضر روی آن کار میکنم برای برخی موجودیتها، فرمهای ایجاد و ویرایش را یکی در نظر گرفتم و به تبع آن از ویوو مدل یکسانی هم برای این ویوو استفاده کردهام. اما مشکلی که وجود داشت این بود که برخی از فیلدها در حالت ویرایش در فرم نمایش داده نمیشد. درواقع در حالتی که ویوی مذکور در حالت ویرایش باز میشد چنین شرطی داشتم: @if (!Model.Id.HasValue)
{
<div class="form-group">
<label>رمز عبور</la ...
فرض کنید قرارداد IService را تدارک دیدهاید و بر اساس آن سرویسهای A و B را به سیستم تزریق وابستگیهای برنامههای NET Core. تزریق کردهاید (برای مثال در برنامه دو DbContext را تعریف کردهاید و یک اینترفیس IUnitOfWork را دارید). اکنون اگر از این سیستم، یک پیاده سازی IService را درخواست کنید، چه اتفاقی رخ میدهد؟ در حالت معمول آن، آخرین سرویسی را که ثبت کردهاید، یعنی وهلهای از سرویس B را بازگشت خواهد داد. در ادامه قصد داریم با این قابلیت ا ...
چند وقتی است مایکروسافت تعدادی از محصولات خود را به صورت سورس باز در اختیار برنامه نویسان قرار دادهاست. برای مثال شما میتوانید در لینوکس یا مک، از نسخهی net core. آن استفاده کنید. در این مقاله روش اجرای sql server را در لینوکس، با استفاده از docker؛ تشریح خواهیم کرد. همچنین با یک پروژه ساده net core.، بر روی دیتابیس add-migration را اجرا کرده و همچنین چند رکورد را در جدولی ثبت میکنیم. البته میتوان نسخهی نصبی sql server را بدون نیاز ...
یکی از نکات امنیتی که استاندارد Owasp بررسی مینماید هدر X-Content-Type-Options است که جهت جلوگیری از حملات از طریق فایلهای نامرتبط میباشد. در این رخنه ممکن است فایلی که مرورگر دریافت میکند با آنچه که وب
سایت ما آن را میشناسد متفاوت باشد. به عنوان مثال یک فایل اسکریپت که به عنوان یک
فایل استایل معرفی میگردد ولی قابلیت
اجرای کدهای آن در مرورگر امکان پذیر است؛ به این نوع حملات MIME Sniffing میگوین ...
روش متداول کار با تزریق وابستگیهای برنامههای مبتنی بر NET Core.، عموما با ثبت و معرفی یک سرویس به صورت زیر، توسط متدهای AddTransient، AddSingleton و AddScoped است: public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddTransient<ICustomerService, DefaultCustomerService>();
// ...
}
}
و سپس است ...