لطفا بفرمایید نحوه صحیح و اصولی لایه بندی یک پروژه از نوع Web Api چگونه است ؟ چه لایه هایی برای یک پروژه Web Api مورد نیاز هست ؟
دقت کنید لایه بندی و تفکیک لایه ها در یک پروژه Web Api با یک پروژه معمولی (FullStack) تفاوت خاصی نداره و شما می تونید مثل همون پروژه ها معمولی لایه بندی هاتون رو انجام بدید.
همون طور که در تصویر بالا مشاهده می کنید معمولا برای لایه بندی پروژه باید 6 لایه در نظر بگیریم. لایه ها از بالا (بالاترین لایه Presentation می باشد) به سمت پایین (پایین ترین لایه Common می باشد) می باشند و هر لایه با تمامی لایه های زیرین خود ارتباط دارد. در اصل میشه اینجوری گفت که هر لایه که بالاتر قرار میگیره به همه لایه های زیرین خود رفرنس دارد و از کلاسها و توابع و متغیرهای لایه های زیرین خود می تواند استفاده کند.
این لایه بالاترین لایه در لایه بندی می باشد. اگر پروژه شما از نوع وب معمولی باشد ظاهر و شکل و شمایل پروژه شما در این لایه قرار دارد. یعنی چیزی که کاربر نهایی می تواند ببینید محتویات این لایه می باشد. اگر هم پروژه شما از نوع API باشد کنترلرها و API هایی که صدا زده می شود در این لایه تعریف می شود.
در این لایه موارد مشترک لایه بالاتر قرار می گیرد. مثلا تنظیمات اجرا نرم افزار، Middleware ها یا همان میان افزارها، کانفیگ های نرم افزار و ... . اگر از Asp.net Core استفاده می کنید.
در این لایه سرویس های کاربردی، اینترفیس ها و DbService ها نگهداری میشن. برای کار با دیتابیس و ریپازیتوری ها و کنترل اونها از اینترفیس های موجود در این لایه استفاده میشه.
در این لایه خود DbContext و ریپازیتوری ها نگهداری می شود. همچنین می توان در این لایه رول های دیتابیسی یا Fluent Api ها را هم نگهداری کرد.
تعاریف جداول، انتیتی ها، مدل ها، Dto ها و ویومدل ها را می توان در این لایه نگهداری کرد.
این لایه پایه ای ترین و زیرین ترین لایه می باشد. این لایه ارتباطی با پروژه اصلی ندارد و میتوان از آن در همه پروژه ها استفاده کرد. کلاسهای عمومی مثل کلاسهای تاریخ و زمان، کلاسهای کنترل string ها و ... در این لایه نگهداری می شود.
نکته : دقت کنید شما مجبور نیستید حتما پروژه خودتون رو اجبارا با این ساختار ایجاد کنید و می توانید هر طور که راحتتر هستید کارتون رو انجام بدید. این لایه بندی صرفا یک پیشنهاد هست و هر طوری هم که مایل باشید می تونید تغییرش بدید.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
49
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
88
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1346
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
115
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
393
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
561
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
49
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
88
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1346
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1156
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
594
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|