نوشتن سرویس Service جدید در فریم ورک Asp.Net Unique Architecture
تمام بیزینس در قالب سرویس ها پیاده سازی و در لایه سرویس ایجاد می شود. لایه سرویس از لایه Service Infrastructure استفاده می کند و به هر سرویس به صورت خودکار Repository خودش وصل می شود. مزیت این روش این است که برنامه نویس درگیر دو مفهوم Repository و سرویس نشده و فقط روی سرویس خود متمرکز می شود. سرویس به صورت built in ( توکار) Repository خود را دارد و این یکی از مهمترین مشخصه های معماری فریم ورک AUA است. برای مثال اگر بخواهیم برای موجودیت Student یک سرویس بنویسیم ، ابتدا باید یک اینترفیس برای موجودیت Student ساخته شود که از کلاس IGenericEntityService ارث بری می کند
به صورت پیش فرض سرویس ایجاد شده شامل تمام توابع مورد نیاز برای کار با Repository می باشد.
لیست توابع Repository که به صورت خودکار به هر سرویس اضافه می شوند.
عملیات | توضیحات |
---|---|
GetAll | کل موجودیت ها را برگشت می دهد و قابلیت فیلتر شدن دارد. پشتیبانی از Async |
GetAllDto | کل موجودیت ها را در قالب DTO برگشت می دهد و قابلیت فیلتر شدن دارد . پشتیبانی از Async |
GetCount | تعداد موجودیت ها و قابلیت فیلتر شدن دارد. |
GetFirst | اولین موجودیت را برگشت میدهد قابلیت فیلتر شدن دارد. |
GetLast | آخرین موجودیت را برگشت میدهد قابلیت فیلتر شدن دارد. |
GetCountAsync | تعداد موجودیت ها و قابلیت فیلتر شدن دارد. پشتیبانی از Async |
GetFirstAsync | اولین موجودیت را برگشت میدهد قابلیت فیلتر شدن دارد. پشتیبانی از Async |
GetLastAsync | آخرین موجودیت را برگشت میدهد قابلیت فیلتر شدن دارد. پشتیبانی از Async |
GetDtoById | گرفتن موجودیت و مپ کردن در قالب DTO |
GetByIdAsync | گرفتن موجودیت با کلید اصلی. پشتیبانی از Async |
GetDtoByIdAsync | گرفتن موجودیت و مپ کردن در قالب DTO پشتیبانی از Async |
Delete | حذف موجودیت –) با کلید اصلی یا Entity یا (DTO |
DeleteAsync | حذف موجودیت –) با کلید اصلی یا Entity یا (DTO پشتیبانی از Async |
Insert | درج موجودیت جدید ) با Entity یا DTO ) |
InsertAsync | درج موجودیت جدید پشتیبانی از Async |
InsertMany | درج چندین موجودیت همزمان |
InsertManyAsync | درج چندین موجودیت همزمان پشتیبانی از Async |
InsertCustomVm | درج موجودیت با ویو مدل سفارشی(هنگامی که بخشی از فیلد های موجودیت از ویو ارسال می شود) |
InsertCustomVmAsync | درج موجودیت با ویو مدل سفارشی- پشتیبانی از Async |
PartialInsert | درج موجودیت در ریپوزیتوری بدون ارسال به سمت دیتابیس - پشتیبانی از Async |
Update | ویرایش موجودیت جدید ) با Entity یا DTO ) |
UpdateAsync | ویرایش موجودیت جدید ) با Entity یا DTO ) پشتیبانی از Async |
UpdateCustomVm | ویرایش موجودیت با ویو مدل سفارشی(هنگامی که بخشی از فیلد های موجودیت از ویو ارسال می شود) |
UpdateCustomVmAsync | ویرایش موجودیت با ویو مدل سفارشی(هنگامی که بخشی از فیلد های موجودیت از ویو ارسال می شود) |
PartialUpdate | درج موجودیت در ریپوزیتوری بدون ارسال به سمت دیتابیس - پشتیبانی از Async |
ConvertTo | نتیجه کوئری را به آبجکتی دیگر تبدیل می کند بر اساس کانفیگ مپینگ |
ProjectTo | نتیجه کوئری را به آبجکتی دیگر تبدیل می کند بر اساس کانفیگ مپینگ |
برنامه نویس می تواند بیزینس خود را در سرویس ها پیاده سازی کند. یک سرویس می تواند از سرویس های دیگر استفاده کند.
به راحتی می توان سرویس ها را داخل یکی دیگر اینجکت (Inject) و استفاده نمود.