||| فریم ورک AUA: سرویس ها

نوشتن سرویس 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) و استفاده نمود.

کلمات کلیدی

.refactoring ریفکتورینگ-

Domain Driven Design Layers

استفاده از ASP.Net MVC Boilerplate
 فریم ورک Entity 7
 روش هایی برای بهبود عملکرد فریم ورک Entity
ASP.NET | Open-source web framework for .NET
Learn .Net Framework Tutorial
What is .NET Framework?Domain Driven Design (DDD)

مشخصات نویسنده
نویسنده عنوان مقاله تاریخ
شهاب عطارنژاد سرویس ها 1398/12/20