مدیریت ورژن پکیج های پروژه به صورت متمرکز
احتمالا برای شما پیش آمده در مواقعی که پروژه ای را ایجاد کردید باید در تمامی فایل های .csproj پروژه ها TargetFramework و ImplicitUsings و... موارد مربوط به PropertyGroup رو تنظیم کنید. و یا اینکه روی یک پروژه ای قدیمی کار کردید و مشاهده کردید که یک پکیج، در دو یا چند لایه نصب شده است و همیشه باید ح ....
ادامه مطلب
مقایسه Offset و Keyset Pagination؛ چگونه میلیون ها رکورد را به صورت بهینه از دیتابیس بخوانیم
تصور کنید باید 10 میلیون رکورد رو باید از دیتابیس بخونید و روی رکوردها یه پردازشی انجام بدید. قاعدتا اولین کاری که انجام میدیم این هست که دیتارو به صورت صفحه بندی شده و با یه مرتب سازی خاصی بخونیم و پردازش کنیم و بریم صفحه بعد. اما بعد از اینکه رکوردهای زیادی رو خوندیم، سرعت خوندن از دیتابیس کم میشه ....
ادامه مطلب
جلوگیری از Cache Stampede در APIهای پرترافیک با استفاده از Double-Checked Locking
زمانی که تعداد کاربران یک وب سایت افزایش پیدا می کند و درخواست های بیشتری به سرور ارسال می شود، اولین بخشی که معمولاً تحت فشار قرار می گیرد، دیتابیس است. برای کاهش این فشار، معمولاً یک لایه کش (Cache) در مقابل دیتابیس قرار می گیرد. در این معماری، ابتدا برنامه بررسی می کند که آیا ....
ادامه مطلب
پیاده سازی Multi-Tenancy همراه با EF Core در Asp.Net Core
در این مطلب به پیاده سازی یک پروژه با قابلیت Multi-Tenant می پردازیم. در یکی از پروژه هایی که انجام دادیم، نیاز بر آن بود که سیستم به صورت Multi-Tenant پیاده سازی شود که بتوان سیستم را برای چندین مشتری اجرا کرد. بسیاری از پروژه ها را میتوان برای چندین مشتری اجرا کرد اما مشکلی که ....
ادامه مطلب
هیچ وقت به صورت مستقیم به Kestrel ریکوئست ارسال نکنید
چند روز پیش، قرار شد که یه اپلیکیشنی بنویسم که تعدادی ریکوئست به یه API ارسال کنه. یه ConsoleApp بود و کار زیاد پیچیده ای نداشت. اپلیکیشن رو نوشتم و روی سیستم خودم تست کردم اوکی بود. بعد گفتن که ریکوئست ها باید به صورت موازی ارسال بشه!. یه تغییر کوچ ....
ادامه مطلب
