نصب قالب پروژه از طریق نیوگت
dotnet new --install DNTFrameworkCoreTemplateAPI::*
dotnet new dntcore-api
Image may be NSFW.
Clik here to view.
بررسی قسمتهای مختلف قالب پروژه
Image may be NSFW.
Clik here to view.
2- پروژه Infrastructure دربرگیرنده DbContext، مهاجرتها و کلاسهای تنظیمات نگاشت موجودیتها به جداول بانک اطلاعاتی پروژه میباشد. به عنوان مثال، به صورت پیشفرض تنظیمات نگاشت موجودیتهای کاربر و گروهکاربری و موجودیتهای وابسته آنها در این قالب پیادهسازی شدهاند. همچنین دو مهاجرت CreateInitialSchema و CreateIdentitySchema ایجاده شدهاند.
Image may be NSFW.
Clik here to view.
3- پروژه Application دربرگیرنده مدلها/DTOها، اعتبارسنجهای مدلها، سرویسها و همچنین Eventهای سفارشی و Handlerهای رویدادهای متناظر با موجودیتهای سیستم، میباشد. همانطور که شکل زیر ملاحظه میکنید، برای موجودیتهای کاربر و گروهکاربری طراحی و پیادهسازی پیشفرضی از قسمتهای مذکور ارائه شده است.
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.
5- از پروژه Common نیز میتوان به عنوان دربرگیرنده کلاسهای کمکی مورد استفاده در سایر قسمتها، بهره برد.
6- پروژه UnitTests دربرگیرده آزمونهای واحد پروژه میباشد. به عنوان مثال، به صورت پیشفرض آزمونهای واحد مرتبط با UserValidator و RoleValidator به صورت کامل در این قالب تدارک دیده شده است.
Image may be NSFW.
Clik here to view.
7- پروژه IntegrationTests دربرگیرنده آزمونهای جامعیت مرتبط با پروژه میباشد. به عنوان مثال، آزمونهای جامعیت متناظر با سرویسهای کاربر و گروهکاربری نیز در این قالب تدارک دیده شده است.
نکته:بدلیل اینکه مکانیزم اعتبارسنجی خودکار ورودیها به عنوان یک Aspect برروی این سرویسها اعمال شده است و بدین ترتیب در فرآیند تست سرویسها نیز دخالت دارند، به صورت ناخواسته به سمت آزمون جامعیت سوق پیدا کردهایم. با این حال اگر برای لایه بالاتر/خارجی پروژه خود یا همان API در قالب، قصد تهیه آزمون جامعیت داشته باشید، میتوانید این تنظیمات ValidationInterceptor را از فایل ApplicationRegistry در پروژه Application حذف کرده و آزمونهای سرویسها را در قالب آزمون واحد انجام دهید. با این حال باید توجه کنید که برای برخی از سناریوها که امکانات هیچ کدام از مهیاکنندههای InMemory و SQLite درون حافظه، جوابگوی نیاز شما نباشد، نیاز خواهید داشت تا از بانک اطلاعاتی واقعی از جمله LocalDb استفاده کنید؛ در این صورت آزمونهای شما نیز در ردیف آزمونهای جامعیت قرار خواهند داشت.
Image may be NSFW.
Clik here to view.
8- پروژه API دربرگیرنده کنترلرها، هابهای SignalR، زیرساخت Authentication مبتنیبر JWT و سایر تنظیمات آغازین پروژه، میباشد. CRUD API متناظر با موجودیتهای کاربر و گروهکاربری نیز در این قالب تدارک دیده شده است.
Image may be NSFW.
Clik here to view.
کدهای کامل این قسمت را میتوانید از اینجادریافت کنید.