به عنوان کسی که روزانه با پروژههای داتنتی سروکار داره، همیشه یک تفاوت بزرگ بین پروژههای داتنت و فریمورکهای دیگه (مثل Express JS، جنگو یا Go Gin) به چشمم میاد: وسواس زیاد روی ساختار پروژه. این وسواس، مخصوصاً به لطف پترن MVC و وجود کنترلرها، گاهی باعث میشه که پروژهها پیچیدهتر از نیاز واقعی بشن و سرعت توسعه هم کاهش پیدا کنه.
البته همه پروژهها به این سطح از سختگیری نیاز ندارن. مثلاً پروژههای کوچیک، پروژههای تکنفره، یا پروژههایی که قرار نیست مدام تغییر کنن.
با ورود داتنت 6 و معرفی Minimal APIs (که به نظر من یک نسخه الهامگرفته از Express JS بود)، این مشکل تا حد زیادی حل شده. حالا برای نوشتن یک API ساده دیگه نیازی نیست کنترلر بنویسیم یا خودمون رو درگیر MVC کنیم. حتی قبل از Minimal APIs هم ابزارهایی مثل FastEndpoints و Ardalis.Endpoints بودن که این محدودیتها رو دور میزدن.
به نظر من، بهترین ترکیب برای خیلی از پروژهها (مخصوصاً پروژههای کوچیک یا سریع) اینه:
Minimal APIs + Mediator + Vertical Slice Architecture
این ترکیب هم کدنویسی رو ساده میکنه و هم ساختار پروژه رو انعطافپذیر نگه میداره، بدون اینکه پیچیدگی زیادی به پروژه اضافه کنه.
از اونجایی که با این تیپ پروژه ها زیاد سروکله میزنم ، امروز تصمیم گرفتم یه تمپلیت آماده کنم که میتونه نقطه شروع خیلی خوبی برای این سبک معماری باشه.
مواردی که داخل این پروژه پیدا میکنید:
PostgreSQL
Mediator Library
Minimal APIs
EF Core
Dapper
Aspire App Host
حتما وقت کردید چکش کنید ، موردی دیدید Issue باز کنین و اگه خوشتون اومد بهش استار بدید.
لینک پروژه:
https://github.com/babaktaremi/MiniApi
Join : @DotNetIsFun
Post #322
2.76K