دسته بندی ها
11:17 1401/11/15

نحوه صحیح لایه بندی پروژه های Web api چگونه است ؟

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : Web Api Asp.net Core

به این سوال امتیاز بدهید    4
تعداد بازدید این سوال : 1959
پاسخ دهنده : fateme 11:37 1401/11/15

لایه بندی پروژه های Web Api

دقت کنید لایه بندی و تفکیک لایه ها در یک پروژه Web Api با یک پروژه معمولی  (FullStack) تفاوت خاصی نداره و شما می تونید مثل همون پروژه ها معمولی لایه بندی هاتون رو انجام بدید.

لایه بندی پروژه های Web api

 

همون طور که در تصویر بالا مشاهده می کنید معمولا برای لایه بندی پروژه باید 6 لایه در نظر بگیریم. لایه ها از بالا (بالاترین لایه Presentation می باشد) به سمت پایین (پایین ترین لایه Common می باشد) می باشند و هر لایه با تمامی لایه های زیرین خود ارتباط دارد. در اصل میشه اینجوری گفت که هر لایه که بالاتر قرار میگیره به همه لایه های زیرین خود رفرنس دارد و از کلاسها و توابع و متغیرهای لایه های زیرین خود می تواند استفاده کند.

 

کاربرد لایه های پروژه چیست ؟

  • لایه Presentation یا UI یا WEB یا API

این لایه بالاترین لایه در لایه بندی می باشد. اگر پروژه شما از نوع وب معمولی باشد ظاهر و شکل و شمایل پروژه شما در این لایه قرار دارد. یعنی چیزی که کاربر نهایی می تواند ببینید محتویات این لایه می باشد. اگر هم پروژه شما از نوع API باشد کنترلرها و API هایی که صدا زده می شود در این لایه تعریف می شود.

 

  • لایه WebFramework

در این لایه موارد مشترک لایه بالاتر قرار می گیرد. مثلا تنظیمات اجرا نرم افزار، Middleware ها یا همان میان افزارها، کانفیگ های نرم افزار و ... . اگر از Asp.net Core استفاده می کنید.

 

  • لایه Services

در این لایه سرویس های کاربردی، اینترفیس ها و DbService ها نگهداری میشن. برای کار با دیتابیس و ریپازیتوری ها و کنترل اونها از اینترفیس های موجود در این لایه استفاده میشه.

 

  • لایه Data یا Data Access

در این لایه خود DbContext و ریپازیتوری ها نگهداری می شود. همچنین می توان در این لایه رول های دیتابیسی یا Fluent Api ها را هم نگهداری کرد.

 

  • لایه Entities یا Domain یا Model

تعاریف جداول، انتیتی ها، مدل ها، Dto ها و ویومدل ها را می توان در این لایه نگهداری کرد.

 

  • لایه Common یا Utilities یا Infrustructure

این لایه پایه ای ترین و زیرین ترین لایه می باشد. این لایه ارتباطی با پروژه اصلی ندارد و میتوان از آن در همه پروژه ها استفاده کرد. کلاسهای عمومی مثل کلاسهای تاریخ و زمان، کلاسهای کنترل string ها و ... در این لایه نگهداری می شود.

 

نکته : دقت کنید شما مجبور نیستید حتما پروژه خودتون رو اجبارا با این ساختار ایجاد کنید و می توانید هر طور که راحتتر هستید کارتون رو انجام بدید. این لایه بندی صرفا یک پیشنهاد هست و هر طوری هم که مایل باشید می تونید تغییرش بدید.

 

دانلود یک نمونه سورس با لایه بندی اصولی در Asp.net Core

ویرایش شده در دوشنبه 17 بهمن 1401 ساعت 10:57:58
به این پاسخ امتیاز بدهید    2
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود