تزریق مستقیم وابستگیها در Action Method ها و Handler Method های ASP.NET Core
همانطور که میدانید ASP.NET Core از تزریق وابستگیها ( Dependency Injection ) پشتیبانی میکند، که یک نوع Design Pattern است، و در اصل یک تکنیک است برای دستیابی و پیاده سازی اصل Inversion Of Control یا...
View Articleبرنامه نویسی موازی - بخش اول - مفاهیم
برنامه نویسی موازی، نقطهی متقابل برنامه نویسی سریال که حتی گاها با برنامه نویسی سریال به سبک Asynchronous به اشتباه گرفته میشود، به سبکی از برنامه نویسی گفته میشود که در آن برنامه نویس قابلیت اجرای...
View Articleایجاد HTTP API توسط Feather HTTP
Feather HTTP یک فریمورک HTTP سبک، برای ایجاد APIهای NET Core. است، در واقع یک wrapper بر روی APIهای موجود ASP.NET Core میباشد که به ما امکان ایجاد HTTP API را در کمترین زمان میدهد. در این مطلب نحوه...
View Articleکوئری نویسی در EF Core - قسمت اول - تشکیل بانک اطلاعاتی و مقدار دهی اولیهی آن
عموم کسانیکه برای بار اول با LINQ آشنا میشوند، مشکل ترجمهی کوئریهای قبلی SQL خود را به آن دارند. به همین جهت پس از چند سعی و خطا ترجیح میدهند تا از ORMها استفاده نکنند؛ چون در کوئری نویسی با آنها...
View Articleراهکار راهاندازی Infrastructure as a code
Infrastructure as code پروسه تعریف کردن ساختار Infrastructure در قالب یک سری فایل است؛ بجای اینکه با ابزارهایی Interactive مانند Portalها به مدیریت Infra بپردازیم.مزیت این روش در آن است که در صورت...
View Articleکوئری نویسی در EF Core - قسمت دوم - کوئریهای ساده
پس از تشکیل ساختار بانک اطلاعاتی و مقدار دهی اولیهی آن در قسمت قبل، در ادامه به بررسی نحوهی انجام تعدادی کوئریهای ساده و ابتدایی با EF Core خواهیم پرداخت. در قسمتهای بعدی حالتهای پیچیدهتری را...
View Articleایجاد یک ActionFilter جهت تمیز کردن اطلاعات ورودی در ASP.NET Core
در ASP.NETCore کار جلوگیری از حملات XSS بر عهده برنامه نویس گذاشته شدهاست و مانند نسخههای قبلی، Request Validation یا اعتبارسنجی درخواستها به صورت توکار در آن وجود ندارد. برای اطلاعات بیشتر به این...
View Articleکوئری نویسی در EF Core - قسمت سوم - جوین نویسی
پس ازآشنایی با نوشتن یک سری کوئریهای ساده در EF Core، در این قسمت به نحوهی گزارشگیری از اطلاعات چندین جدول مرتبط به هم توسط Joinها خواهیم پرداخت. مثال 1: یافتن زمانهای شروع رزرو کردن امکانات مختلف،...
View Articleکوئری نویسی در EF Core - قسمت چهارم - اعمال تغییرات در دادهها
نوع دیگری از کوئریهای پرکاربرد، کوئریهای مرتبط با ثبت، حذف و ویرایش اطلاعات هستند که در این قسمت آنها را بررسی میکنیم. البته این مثالها از یکسری مثال کوئریهای مرتبط با PostgreSQL، به EF-Core...
View Articleایجاد فیلتر برای هدایت همهی درخواستها به صفحهی «در حال بهروزرسانی» در...
مواقع زیادی اتفاق میافتد که باید کار خاصی، بر روی سایتی که publish شده انجام بدیم. مثلا قرار هست یک بهروزرسانی انجام بدیم یا هر عملیات خاصی دیگری. در این موارد اگر بخواهیم کاربر نتواند وارد سایت...
View Articleبررسی یک SQL Smell - ایجاد روابط Polymorphic
سناریویی را در نظر بگیرید که برای هر کدام از مدلهای Article, Video, Event میخواهیم قابلیت کامنتگذاری جداگانهای را داشته باشیم. چندین روش برای پیادهسازی این سناریو وجود دارد که در ادامه به آنها...
View Articleکوئری نویسی در EF Core - قسمت پنجم - اعمال تجمعی - بخش اول
امکان انجام محاسبات تجمعی، یکی از مواردی است که قدرت بانکهای اطلاعاتی رابطهای را نمایش میدهد. توسط این نوع کوئریها از محدودهی CRUD (ثبت/ویرایش/به روز رسانی) خارج شده و وارد دنیای تصمیمگیریها...
View Articleبررسی یک SQL Smell - ایجاد روابط Polymorphic - بخش دوم
در مطلب قبل نحوهی ایجاد روابط Polymorphic را بررسی کردیم و همچنین چندین راهحل جایگزین را نیز ارائه دادیم. همانطور که عنوان شد این نوع روابط اساساً از لحاظ طراحی دیتابیس اصولی نیستند و تا حد امکان...
View Articleکوئری نویسی در EF Core - قسمت پنجم - اعمال تجمعی - بخش دوم
کوئریهای تجمعی این قسمت، کمی پیچیدهتر هستند و برای حل آنها باید از window functionsاستفاده کرد و چون این مفهوم توسط EF-Core پشتیبانی نمیشود (منظور توسط LINQ to Entities آن است و نه SQL نویسی...
View Articleسری بررسی SQL Smell در EF Core - ایجاد روابط Polymorphic - بخش اول
سناریویی را در نظر بگیرید که برای هر کدام از مدلهای Article, Video, Event میخواهیم قابلیت کامنتگذاری جداگانهای را داشته باشیم. چندین روش برای پیادهسازی این سناریو وجود دارد که در ادامه به آنها...
View Articleسری بررسی SQL Smell در EF Core - ایجاد روابط Polymorphic - بخش دوم
در مطلب قبل نحوهی ایجاد روابط Polymorphic را بررسی کردیم و همچنین چندین راهحل جایگزین را نیز ارائه دادیم. همانطور که عنوان شد این نوع روابط اساساً از لحاظ طراحی دیتابیس اصولی نیستند و تا حد امکان...
View Articleکوئری نویسی در EF Core - قسمت ششم - کار با تاریخ و زمان
در کوئریهای قسمتهای قبلنیز تعدادی از آنها بر اساس فیلتر اطلاعات یک روز خاص، گروه بندی اطلاعات بر اساس ماهها و یا گروه بندی اطلاعات بر اساس روزها، بدون درنظر گرفتن قسمت زمان تاریخ، تهیه شدند. در این...
View Articleکوئری نویسی در EF Core - قسمت هفتم - کار با رشتهها
هدف از این سری مثالها، آشنایی با متدها و توابعی است که در حین کار با خواص رشتهای در LINQ to Entities، مجاز به استفادهی از آنها هستیم و همچنین اگر تابعی در EF-Core هنوز تعریف نشده بود، راه حل...
View Articleسری بررسی SQL Smell در EF Core - استفاده از مدل Entity Attribute Value - بخش...
یکی از چالشهای دیتابیسهای رابطهایی، ذخیرهسازی دادههایی با ساختار داینامیک است. در حالت عادی، یک جدول مجموعهایی از موجودیتها است. هر موجودیت نیز شامل یکسری ویژگیهای (Attributes) مشخص میباشد....
View Articleکوئری نویسی در EF Core - قسمت هشتم - کوئریهای بازگشتی
جدول اعضای این مجموعه، خود ارجاع دهنده طراحی شدهاست:namespace EFCorePgExercises.Entities { public class Member { // ... public virtual ICollection<Member> Children { get; set; } public virtual...
View Article