TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.3K subscribers
Post #12969 5.57K
اگر با MediatR کار می‌کنی و هنوز پاسخ Queryها را دستی Cache می‌کنی، وقتشه ساده‌ترش کنی.
با استفاده این پکیج فقط یک Attribute روی Request می‌گذاری؛ بقیه کارها توسط پایپلاین خودکار انجام می‌شود:
- کش انتخابی (Opt-in)؛ فقط Requestهایی که خودت مشخص می‌کنی Cache می‌شوند.
- پاک‌سازی کش با Tag؛ گروهی حذف کن، نه یکی‌یکی.
- اتریبیوت [RequestOutputCacheEvict] روی Commandها در cqrs برای Invalidation خودکار بعد از موفقیت.
- پاک‌سازی خودکار کش با EF Core هنگام اجرای SaveChanges / SaveChangesAsync.
- پشتیبانی از Providerهای Redis یا Garnet و حتی Memory cache.
- پاک‌سازی توزیع‌شده با Pub/Sub بین سرویس‌ها و CQRS Hostها.
- کش شرطی (Conditional Caching)؛ فقط وقتی عملیات موفق باشد یا شرط دلخواهت برقرار باشد.
- هدر X-NexGen-Output-Cache: HIT هنگام دریافت پاسخ از Cache.
- پشتیبانی از .NET 8، .NET 9 و .NET 10.

یک بار نصب کن، یک بار تست کن؛ تفاوتش را در کاهش Latency و ساده‌تر شدن کدها احساس می‌کنی.
NexGen.MediatR.Extensions.Caching
https://github.com/MatinGhanbari/NexGen.MediatR.Extensions.Caching

@DevTwitter | <Askiev/>
  • ❤ 11
  • 👍 5
  • 🔥 2
More from @devtwitter
  1. Sep 30, 2026دوره‌ی Stanford درباره‌ی Transformers و LLMها در فصل جدید شروع شده دوره CME 295 از پایه‌ی…
  2. Sep 30, 2026تست‌های سنتی E2E شکننده‌اند؛ یک تغییر جزیی در CSS یا تایمینگ انیمیشن، کل CI/CD pipeline را…
  3. Sep 30, 2026این رایگانه و خیلی سرویس خفنیه. ایده اینه که آدرس هر سایتی که خواستی رو بهش بدی و این سروی…
  4. Sep 30, 2026شرکت امنیتی Group-IB یک بدافزار جاسوسی مبتنی بر تلگرام با نام HEAVYGRAM و یک ابزار مبتنی ب…
  5. Sep 30, 2026خیلی ناگهانی برای یه مسئله‌ای نیاز پیدا کردم که یه بروزر داشته باشم که هر وقت یه session ا…
  6. Sep 30, 2026یکی یه دوره کامل درباره AI Harness Engineering رو Open Source کرده! و بهترین قسمت؟ کاملاً…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →